diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 12:19:15 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 12:19:15 +0000 |
commit | 6eb9c5a5657d1fe77b55cc261450f3538d35a94d (patch) | |
tree | 657d8194422a5daccecfd42d654b8a245ef7b4c8 /src/backend/snowball | |
parent | Initial commit. (diff) | |
download | postgresql-13-6eb9c5a5657d1fe77b55cc261450f3538d35a94d.tar.xz postgresql-13-6eb9c5a5657d1fe77b55cc261450f3538d35a94d.zip |
Adding upstream version 13.4.upstream/13.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/backend/snowball')
63 files changed, 39875 insertions, 0 deletions
diff --git a/src/backend/snowball/.gitignore b/src/backend/snowball/.gitignore new file mode 100644 index 0000000..ef03eb6 --- /dev/null +++ b/src/backend/snowball/.gitignore @@ -0,0 +1 @@ +/snowball_create.sql diff --git a/src/backend/snowball/Makefile b/src/backend/snowball/Makefile new file mode 100644 index 0000000..539f572 --- /dev/null +++ b/src/backend/snowball/Makefile @@ -0,0 +1,160 @@ +#------------------------------------------------------------------------- +# +# Makefile for src/backend/snowball +# +# src/backend/snowball/Makefile +# +#------------------------------------------------------------------------- + +PGFILEDESC = "snowball - natural language stemmers" +PGAPPICON = win32 + +subdir = src/backend/snowball +top_builddir = ../../.. +include $(top_builddir)/src/Makefile.global + +override CPPFLAGS := -I$(top_srcdir)/src/include/snowball \ + -I$(top_srcdir)/src/include/snowball/libstemmer $(CPPFLAGS) + +OBJS = \ + $(WIN32RES) \ + api.o \ + dict_snowball.o \ + utilities.o + +OBJS += \ + stem_ISO_8859_1_danish.o \ + stem_ISO_8859_1_dutch.o \ + stem_ISO_8859_1_english.o \ + stem_ISO_8859_1_finnish.o \ + stem_ISO_8859_1_french.o \ + stem_ISO_8859_1_german.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 \ + stem_UTF_8_finnish.o \ + stem_UTF_8_french.o \ + stem_UTF_8_german.o \ + stem_UTF_8_greek.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 \ + stem_UTF_8_romanian.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 +# words, second is name of dictionary for all-ASCII words +# 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 \ + finnish finnish \ + french french \ + german german \ + greek greek \ + 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 + + +SQLSCRIPT= snowball_create.sql +DICTDIR=tsearch_data + +VPATH += $(srcdir)/libstemmer + +NAME := dict_snowball +rpath = + +all: all-shared-lib $(SQLSCRIPT) + +include $(top_srcdir)/src/Makefile.shlib + +$(SQLSCRIPT): Makefile snowball_func.sql.in snowball.sql.in + echo '-- Language-specific snowball dictionaries' > $@ + cat $(srcdir)/snowball_func.sql.in >> $@ + @set -e; \ + set $(LANGUAGES) ; \ + while [ "$$#" -gt 0 ] ; \ + do \ + lang=$$1; shift; \ + nonascdictname=$$lang; \ + ascdictname=$$1; shift; \ + if [ -s $(srcdir)/stopwords/$${lang}.stop ] ; then \ + stop=", StopWords=$${lang}" ; \ + else \ + stop=""; \ + fi; \ + cat $(srcdir)/snowball.sql.in | \ + sed -e "s#_LANGNAME_#$$lang#g" | \ + sed -e "s#_DICTNAME_#$${lang}_stem#g" | \ + sed -e "s#_CFGNAME_#$$lang#g" | \ + sed -e "s#_ASCDICTNAME_#$${ascdictname}_stem#g" | \ + sed -e "s#_NONASCDICTNAME_#$${nonascdictname}_stem#g" | \ + sed -e "s#_STOPWORDS_#$$stop#g" ; \ + done >> $@ + +install: all installdirs install-lib + $(INSTALL_DATA) $(SQLSCRIPT) '$(DESTDIR)$(datadir)' + @set -e; \ + set $(LANGUAGES) ; \ + while [ "$$#" -gt 0 ] ; \ + do \ + lang=$$1; shift; shift; \ + if [ -s $(srcdir)/stopwords/$${lang}.stop ] ; then \ + $(INSTALL_DATA) $(srcdir)/stopwords/$${lang}.stop '$(DESTDIR)$(datadir)/$(DICTDIR)' ; \ + fi \ + done + +installdirs: installdirs-lib + $(MKDIR_P) '$(DESTDIR)$(datadir)' '$(DESTDIR)$(datadir)/$(DICTDIR)' + +uninstall: uninstall-lib + rm -f '$(DESTDIR)$(datadir)/$(SQLSCRIPT)' + @set -e; \ + set $(LANGUAGES) ; \ + while [ "$$#" -gt 0 ] ; \ + do \ + lang=$$1; shift; shift; \ + if [ -s $(srcdir)/stopwords/$${lang}.stop ] ; then \ + rm -f '$(DESTDIR)$(datadir)/$(DICTDIR)/'$${lang}.stop ; \ + fi \ + done + +clean distclean maintainer-clean: clean-lib + rm -f $(OBJS) $(SQLSCRIPT) diff --git a/src/backend/snowball/README b/src/backend/snowball/README new file mode 100644 index 0000000..3463289 --- /dev/null +++ b/src/backend/snowball/README @@ -0,0 +1,64 @@ +src/backend/snowball/README + +Snowball-Based Stemming +======================= + +This module uses the word stemming code developed by the Snowball project, +http://snowballstem.org (formerly http://snowball.tartarus.org) +which is released by them under a BSD-style license. + +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 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. + +We are currently synced with the Snowball git commit +4456b82c26c02493e8807a66f30593a98c5d2888 +of 2019-06-24. + +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 .../snowball/src_c/*.c +do + sed 's|\.\./runtime/header\.h|header.h|' $f >libstemmer/`basename $f` +done + +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 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. You might also need to change +the LANGUAGES list in Makefile and tsearch_config_languages in initdb.c. + +5. The various stopword files in stopwords/ must be downloaded +individually from pages on the snowballstem.org website. +Be careful that these files must be stored in UTF-8 encoding. diff --git a/src/backend/snowball/dict_snowball.c b/src/backend/snowball/dict_snowball.c new file mode 100644 index 0000000..144120a --- /dev/null +++ b/src/backend/snowball/dict_snowball.c @@ -0,0 +1,315 @@ +/*------------------------------------------------------------------------- + * + * dict_snowball.c + * Snowball dictionary + * + * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group + * + * IDENTIFICATION + * src/backend/snowball/dict_snowball.c + * + *------------------------------------------------------------------------- + */ +#include "postgres.h" + +#include "commands/defrem.h" +#include "tsearch/ts_locale.h" +#include "tsearch/ts_utils.h" + +/* Some platforms define MAXINT and/or MININT, causing conflicts */ +#ifdef MAXINT +#undef MAXINT +#endif +#ifdef MININT +#undef MININT +#endif + +/* Now we can include the original Snowball header.h */ +#include "snowball/libstemmer/header.h" +#include "snowball/libstemmer/stem_ISO_8859_1_danish.h" +#include "snowball/libstemmer/stem_ISO_8859_1_dutch.h" +#include "snowball/libstemmer/stem_ISO_8859_1_english.h" +#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_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" +#include "snowball/libstemmer/stem_UTF_8_finnish.h" +#include "snowball/libstemmer/stem_UTF_8_french.h" +#include "snowball/libstemmer/stem_UTF_8_german.h" +#include "snowball/libstemmer/stem_UTF_8_greek.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" +#include "snowball/libstemmer/stem_UTF_8_romanian.h" +#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; + +PG_FUNCTION_INFO_V1(dsnowball_init); + +PG_FUNCTION_INFO_V1(dsnowball_lexize); + +/* List of supported modules */ +typedef struct stemmer_module +{ + const char *name; + pg_enc enc; + struct SN_env *(*create) (void); + void (*close) (struct SN_env *); + 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 + */ + 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(greek, 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 + */ + STEMMER_MODULE(english, PG_SQL_ASCII, ISO_8859_1), + + {NULL, 0, NULL, NULL, NULL} /* list end marker */ +}; + + +typedef struct DictSnowball +{ + struct SN_env *z; + StopList stoplist; + bool needrecode; /* needs recoding before/after call stem */ + int (*stem) (struct SN_env *z); + + /* + * snowball saves alloced memory between calls, so we should run it in our + * private memory context. Note, init function is executed in long lived + * context, so we just remember CurrentMemoryContext + */ + MemoryContext dictCtx; +} DictSnowball; + + +static void +locate_stem_module(DictSnowball *d, const char *lang) +{ + const stemmer_module *m; + + /* + * First, try to find exact match of stemmer module. Stemmer with + * PG_SQL_ASCII encoding is treated as working with any server encoding + */ + for (m = stemmer_modules; m->name; m++) + { + if ((m->enc == PG_SQL_ASCII || m->enc == GetDatabaseEncoding()) && + pg_strcasecmp(m->name, lang) == 0) + { + d->stem = m->stem; + d->z = m->create(); + d->needrecode = false; + return; + } + } + + /* + * Second, try to find stemmer for needed language for UTF8 encoding. + */ + for (m = stemmer_modules; m->name; m++) + { + if (m->enc == PG_UTF8 && pg_strcasecmp(m->name, lang) == 0) + { + d->stem = m->stem; + d->z = m->create(); + d->needrecode = true; + return; + } + } + + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("no Snowball stemmer available for language \"%s\" and encoding \"%s\"", + lang, GetDatabaseEncodingName()))); +} + +Datum +dsnowball_init(PG_FUNCTION_ARGS) +{ + List *dictoptions = (List *) PG_GETARG_POINTER(0); + DictSnowball *d; + bool stoploaded = false; + ListCell *l; + + d = (DictSnowball *) palloc0(sizeof(DictSnowball)); + + foreach(l, dictoptions) + { + DefElem *defel = (DefElem *) lfirst(l); + + if (strcmp(defel->defname, "stopwords") == 0) + { + if (stoploaded) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("multiple StopWords parameters"))); + readstoplist(defGetString(defel), &d->stoplist, lowerstr); + stoploaded = true; + } + else if (strcmp(defel->defname, "language") == 0) + { + if (d->stem) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("multiple Language parameters"))); + locate_stem_module(d, defGetString(defel)); + } + else + { + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("unrecognized Snowball parameter: \"%s\"", + defel->defname))); + } + } + + if (!d->stem) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("missing Language parameter"))); + + d->dictCtx = CurrentMemoryContext; + + PG_RETURN_POINTER(d); +} + +Datum +dsnowball_lexize(PG_FUNCTION_ARGS) +{ + DictSnowball *d = (DictSnowball *) PG_GETARG_POINTER(0); + char *in = (char *) PG_GETARG_POINTER(1); + int32 len = PG_GETARG_INT32(2); + char *txt = lowerstr_with_len(in, len); + TSLexeme *res = palloc0(sizeof(TSLexeme) * 2); + + if (*txt == '\0' || searchstoplist(&(d->stoplist), txt)) + { + pfree(txt); + } + else + { + MemoryContext saveCtx; + + /* + * recode to utf8 if stemmer is utf8 and doesn't match server encoding + */ + if (d->needrecode) + { + char *recoded; + + recoded = pg_server_to_any(txt, strlen(txt), PG_UTF8); + if (recoded != txt) + { + pfree(txt); + txt = recoded; + } + } + + /* see comment about d->dictCtx */ + saveCtx = MemoryContextSwitchTo(d->dictCtx); + SN_set_current(d->z, strlen(txt), (symbol *) txt); + d->stem(d->z); + MemoryContextSwitchTo(saveCtx); + + if (d->z->p && d->z->l) + { + txt = repalloc(txt, d->z->l + 1); + memcpy(txt, d->z->p, d->z->l); + txt[d->z->l] = '\0'; + } + + /* back recode if needed */ + if (d->needrecode) + { + char *recoded; + + recoded = pg_any_to_server(txt, strlen(txt), PG_UTF8); + if (recoded != txt) + { + pfree(txt); + txt = recoded; + } + } + + res->lexeme = txt; + } + + PG_RETURN_POINTER(res); +} diff --git a/src/backend/snowball/libstemmer/api.c b/src/backend/snowball/libstemmer/api.c new file mode 100644 index 0000000..530b427 --- /dev/null +++ b/src/backend/snowball/libstemmer/api.c @@ -0,0 +1,64 @@ +#include "header.h" + +extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size) +{ + struct SN_env * z = (struct SN_env *) calloc(1, sizeof(struct SN_env)); + if (z == NULL) return NULL; + z->p = create_s(); + if (z->p == NULL) goto error; + if (S_size) + { + int i; + z->S = (symbol * *) calloc(S_size, sizeof(symbol *)); + if (z->S == NULL) goto error; + + for (i = 0; i < S_size; i++) + { + z->S[i] = create_s(); + if (z->S[i] == NULL) goto error; + } + } + + if (I_size) + { + z->I = (int *) calloc(I_size, sizeof(int)); + if (z->I == NULL) goto error; + } + + if (B_size) + { + z->B = (unsigned char *) calloc(B_size, sizeof(unsigned char)); + if (z->B == NULL) goto error; + } + + return z; +error: + SN_close_env(z, S_size); + return NULL; +} + +extern void SN_close_env(struct SN_env * z, int S_size) +{ + if (z == NULL) return; + if (S_size) + { + int i; + for (i = 0; i < S_size; i++) + { + lose_s(z->S[i]); + } + free(z->S); + } + free(z->I); + free(z->B); + if (z->p) lose_s(z->p); + free(z); +} + +extern int SN_set_current(struct SN_env * z, int size, const symbol * s) +{ + int err = replace_s(z, 0, z->l, size, s, NULL); + z->c = 0; + return err; +} + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c new file mode 100644 index 0000000..0ecbbb7 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c @@ -0,0 +1,329 @@ +/* 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 danish_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_undouble(struct SN_env * z); +static int r_other_suffix(struct SN_env * z); +static int r_consonant_pair(struct SN_env * z); +static int r_main_suffix(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * danish_ISO_8859_1_create_env(void); +extern void danish_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[3] = { 'h', 'e', 'd' }; +static const symbol s_0_1[5] = { 'e', 't', 'h', 'e', 'd' }; +static const symbol s_0_2[4] = { 'e', 'r', 'e', 'd' }; +static const symbol s_0_3[1] = { 'e' }; +static const symbol s_0_4[5] = { 'e', 'r', 'e', 'd', 'e' }; +static const symbol s_0_5[4] = { 'e', 'n', 'd', 'e' }; +static const symbol s_0_6[6] = { 'e', 'r', 'e', 'n', 'd', 'e' }; +static const symbol s_0_7[3] = { 'e', 'n', 'e' }; +static const symbol s_0_8[4] = { 'e', 'r', 'n', 'e' }; +static const symbol s_0_9[3] = { 'e', 'r', 'e' }; +static const symbol s_0_10[2] = { 'e', 'n' }; +static const symbol s_0_11[5] = { 'h', 'e', 'd', 'e', 'n' }; +static const symbol s_0_12[4] = { 'e', 'r', 'e', 'n' }; +static const symbol s_0_13[2] = { 'e', 'r' }; +static const symbol s_0_14[5] = { 'h', 'e', 'd', 'e', 'r' }; +static const symbol s_0_15[4] = { 'e', 'r', 'e', 'r' }; +static const symbol s_0_16[1] = { 's' }; +static const symbol s_0_17[4] = { 'h', 'e', 'd', 's' }; +static const symbol s_0_18[2] = { 'e', 's' }; +static const symbol s_0_19[5] = { 'e', 'n', 'd', 'e', 's' }; +static const symbol s_0_20[7] = { 'e', 'r', 'e', 'n', 'd', 'e', 's' }; +static const symbol s_0_21[4] = { 'e', 'n', 'e', 's' }; +static const symbol s_0_22[5] = { 'e', 'r', 'n', 'e', 's' }; +static const symbol s_0_23[4] = { 'e', 'r', 'e', 's' }; +static const symbol s_0_24[3] = { 'e', 'n', 's' }; +static const symbol s_0_25[6] = { 'h', 'e', 'd', 'e', 'n', 's' }; +static const symbol s_0_26[5] = { 'e', 'r', 'e', 'n', 's' }; +static const symbol s_0_27[3] = { 'e', 'r', 's' }; +static const symbol s_0_28[3] = { 'e', 't', 's' }; +static const symbol s_0_29[5] = { 'e', 'r', 'e', 't', 's' }; +static const symbol s_0_30[2] = { 'e', 't' }; +static const symbol s_0_31[4] = { 'e', 'r', 'e', 't' }; + +static const struct among a_0[32] = +{ +/* 0 */ { 3, s_0_0, -1, 1, 0}, +/* 1 */ { 5, s_0_1, 0, 1, 0}, +/* 2 */ { 4, s_0_2, -1, 1, 0}, +/* 3 */ { 1, s_0_3, -1, 1, 0}, +/* 4 */ { 5, s_0_4, 3, 1, 0}, +/* 5 */ { 4, s_0_5, 3, 1, 0}, +/* 6 */ { 6, s_0_6, 5, 1, 0}, +/* 7 */ { 3, s_0_7, 3, 1, 0}, +/* 8 */ { 4, s_0_8, 3, 1, 0}, +/* 9 */ { 3, s_0_9, 3, 1, 0}, +/* 10 */ { 2, s_0_10, -1, 1, 0}, +/* 11 */ { 5, s_0_11, 10, 1, 0}, +/* 12 */ { 4, s_0_12, 10, 1, 0}, +/* 13 */ { 2, s_0_13, -1, 1, 0}, +/* 14 */ { 5, s_0_14, 13, 1, 0}, +/* 15 */ { 4, s_0_15, 13, 1, 0}, +/* 16 */ { 1, s_0_16, -1, 2, 0}, +/* 17 */ { 4, s_0_17, 16, 1, 0}, +/* 18 */ { 2, s_0_18, 16, 1, 0}, +/* 19 */ { 5, s_0_19, 18, 1, 0}, +/* 20 */ { 7, s_0_20, 19, 1, 0}, +/* 21 */ { 4, s_0_21, 18, 1, 0}, +/* 22 */ { 5, s_0_22, 18, 1, 0}, +/* 23 */ { 4, s_0_23, 18, 1, 0}, +/* 24 */ { 3, s_0_24, 16, 1, 0}, +/* 25 */ { 6, s_0_25, 24, 1, 0}, +/* 26 */ { 5, s_0_26, 24, 1, 0}, +/* 27 */ { 3, s_0_27, 16, 1, 0}, +/* 28 */ { 3, s_0_28, 16, 1, 0}, +/* 29 */ { 5, s_0_29, 28, 1, 0}, +/* 30 */ { 2, s_0_30, -1, 1, 0}, +/* 31 */ { 4, s_0_31, 30, 1, 0} +}; + +static const symbol s_1_0[2] = { 'g', 'd' }; +static const symbol s_1_1[2] = { 'd', 't' }; +static const symbol s_1_2[2] = { 'g', 't' }; +static const symbol s_1_3[2] = { 'k', 't' }; + +static const struct among a_1[4] = +{ +/* 0 */ { 2, s_1_0, -1, -1, 0}, +/* 1 */ { 2, s_1_1, -1, -1, 0}, +/* 2 */ { 2, s_1_2, -1, -1, 0}, +/* 3 */ { 2, s_1_3, -1, -1, 0} +}; + +static const symbol s_2_0[2] = { 'i', 'g' }; +static const symbol s_2_1[3] = { 'l', 'i', 'g' }; +static const symbol s_2_2[4] = { 'e', 'l', 'i', 'g' }; +static const symbol s_2_3[3] = { 'e', 'l', 's' }; +static const symbol s_2_4[4] = { 'l', 0xF8, 's', 't' }; + +static const struct among a_2[5] = +{ +/* 0 */ { 2, s_2_0, -1, 1, 0}, +/* 1 */ { 3, s_2_1, 0, 1, 0}, +/* 2 */ { 4, s_2_2, 1, 1, 0}, +/* 3 */ { 3, s_2_3, -1, 1, 0}, +/* 4 */ { 4, s_2_4, -1, 2, 0} +}; + +static const unsigned char g_c[] = { 119, 223, 119, 1 }; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 }; + +static const unsigned char g_s_ending[] = { 239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 }; + +static const symbol s_0[] = { 's', 't' }; +static const symbol s_1[] = { 'i', 'g' }; +static const symbol s_2[] = { 'l', 0xF8, 's' }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */ + { int c_test1 = z->c; /* test, line 35 */ + { int ret = z->c + 3; /* hop, line 35 */ + if (0 > ret || ret > z->l) return 0; + z->c = ret; + } + z->I[1] = z->c; /* setmark x, line 35 */ + z->c = c_test1; + } + if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 36 */ + { /* gopast */ /* non v, line 36 */ + int ret = in_grouping(z, g_v, 97, 248, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 36 */ + /* try, line 37 */ + if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 37 */ + z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 37 */ +lab0: + return 1; +} + +static int r_main_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 43 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 43 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 43 */ + among_var = find_among_b(z, a_0, 32); + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 43 */ + z->lb = mlimit1; + } + switch (among_var) { /* among, line 44 */ + case 1: + { int ret = slice_del(z); /* delete, line 50 */ + if (ret < 0) return ret; + } + break; + case 2: + if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 52 */ + { int ret = slice_del(z); /* delete, line 52 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ + { int m_test1 = z->l - z->c; /* test, line 57 */ + + { int mlimit2; /* setlimit, line 58 */ + if (z->c < z->I[0]) return 0; + mlimit2 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 58 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 58 */ + if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; } + z->bra = z->c; /* ], line 58 */ + z->lb = mlimit2; + } + z->c = z->l - m_test1; + } + if (z->c <= z->lb) return 0; + z->c--; /* next, line 64 */ + z->bra = z->c; /* ], line 64 */ + { int ret = slice_del(z); /* delete, line 64 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_other_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + { int m1 = z->l - z->c; (void)m1; /* do, line 68 */ + z->ket = z->c; /* [, line 68 */ + if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 68 */ + z->bra = z->c; /* ], line 68 */ + if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 68 */ + { int ret = slice_del(z); /* delete, line 68 */ + if (ret < 0) return ret; + } + lab0: + z->c = z->l - m1; + } + + { int mlimit2; /* setlimit, line 69 */ + if (z->c < z->I[0]) return 0; + mlimit2 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 69 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 69 */ + among_var = find_among_b(z, a_2, 5); + if (!(among_var)) { z->lb = mlimit2; return 0; } + z->bra = z->c; /* ], line 69 */ + z->lb = mlimit2; + } + switch (among_var) { /* among, line 70 */ + case 1: + { int ret = slice_del(z); /* delete, line 72 */ + if (ret < 0) return ret; + } + { int m3 = z->l - z->c; (void)m3; /* do, line 72 */ + { int ret = r_consonant_pair(z); /* call consonant_pair, line 72 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + lab1: + z->c = z->l - m3; + } + break; + case 2: + { int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_undouble(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 78 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 78 */ + if (in_grouping_b(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } /* grouping c, line 78 */ + z->bra = z->c; /* ], line 78 */ + z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 78 */ + if (z->S[0] == 0) return -1; /* -> ch, line 78 */ + z->lb = mlimit1; + } + if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 79 */ + { int ret = slice_del(z); /* delete, line 80 */ + if (ret < 0) return ret; + } + return 1; +} + +extern int danish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 86 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 86 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + z->lb = z->c; z->c = z->l; /* backwards, line 87 */ + + { int m2 = z->l - z->c; (void)m2; /* do, line 88 */ + { int ret = r_main_suffix(z); /* call main_suffix, line 88 */ + 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 89 */ + { int ret = r_consonant_pair(z); /* call consonant_pair, line 89 */ + 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 90 */ + { int ret = r_other_suffix(z); /* call other_suffix, line 90 */ + 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 91 */ + { int ret = r_undouble(z); /* call undouble, line 91 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + lab4: + z->c = z->l - m5; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * danish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2, 0); } + +extern void danish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c new file mode 100644 index 0000000..b3d2c4e --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c @@ -0,0 +1,614 @@ +/* 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 dutch_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_standard_suffix(struct SN_env * z); +static int r_undouble(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_en_ending(struct SN_env * z); +static int r_e_ending(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * dutch_ISO_8859_1_create_env(void); +extern void dutch_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[1] = { 0xE1 }; +static const symbol s_0_2[1] = { 0xE4 }; +static const symbol s_0_3[1] = { 0xE9 }; +static const symbol s_0_4[1] = { 0xEB }; +static const symbol s_0_5[1] = { 0xED }; +static const symbol s_0_6[1] = { 0xEF }; +static const symbol s_0_7[1] = { 0xF3 }; +static const symbol s_0_8[1] = { 0xF6 }; +static const symbol s_0_9[1] = { 0xFA }; +static const symbol s_0_10[1] = { 0xFC }; + +static const struct among a_0[11] = +{ +/* 0 */ { 0, 0, -1, 6, 0}, +/* 1 */ { 1, s_0_1, 0, 1, 0}, +/* 2 */ { 1, s_0_2, 0, 1, 0}, +/* 3 */ { 1, s_0_3, 0, 2, 0}, +/* 4 */ { 1, s_0_4, 0, 2, 0}, +/* 5 */ { 1, s_0_5, 0, 3, 0}, +/* 6 */ { 1, s_0_6, 0, 3, 0}, +/* 7 */ { 1, s_0_7, 0, 4, 0}, +/* 8 */ { 1, s_0_8, 0, 4, 0}, +/* 9 */ { 1, s_0_9, 0, 5, 0}, +/* 10 */ { 1, s_0_10, 0, 5, 0} +}; + +static const symbol s_1_1[1] = { 'I' }; +static const symbol s_1_2[1] = { 'Y' }; + +static const struct among a_1[3] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 1, s_1_1, 0, 2, 0}, +/* 2 */ { 1, s_1_2, 0, 1, 0} +}; + +static const symbol s_2_0[2] = { 'd', 'd' }; +static const symbol s_2_1[2] = { 'k', 'k' }; +static const symbol s_2_2[2] = { 't', 't' }; + +static const struct among a_2[3] = +{ +/* 0 */ { 2, s_2_0, -1, -1, 0}, +/* 1 */ { 2, s_2_1, -1, -1, 0}, +/* 2 */ { 2, s_2_2, -1, -1, 0} +}; + +static const symbol s_3_0[3] = { 'e', 'n', 'e' }; +static const symbol s_3_1[2] = { 's', 'e' }; +static const symbol s_3_2[2] = { 'e', 'n' }; +static const symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' }; +static const symbol s_3_4[1] = { 's' }; + +static const struct among a_3[5] = +{ +/* 0 */ { 3, s_3_0, -1, 2, 0}, +/* 1 */ { 2, s_3_1, -1, 3, 0}, +/* 2 */ { 2, s_3_2, -1, 2, 0}, +/* 3 */ { 5, s_3_3, 2, 1, 0}, +/* 4 */ { 1, s_3_4, -1, 3, 0} +}; + +static const symbol s_4_0[3] = { 'e', 'n', 'd' }; +static const symbol s_4_1[2] = { 'i', 'g' }; +static const symbol s_4_2[3] = { 'i', 'n', 'g' }; +static const symbol s_4_3[4] = { 'l', 'i', 'j', 'k' }; +static const symbol s_4_4[4] = { 'b', 'a', 'a', 'r' }; +static const symbol s_4_5[3] = { 'b', 'a', 'r' }; + +static const struct among a_4[6] = +{ +/* 0 */ { 3, s_4_0, -1, 1, 0}, +/* 1 */ { 2, s_4_1, -1, 2, 0}, +/* 2 */ { 3, s_4_2, -1, 1, 0}, +/* 3 */ { 4, s_4_3, -1, 3, 0}, +/* 4 */ { 4, s_4_4, -1, 4, 0}, +/* 5 */ { 3, s_4_5, -1, 5, 0} +}; + +static const symbol s_5_0[2] = { 'a', 'a' }; +static const symbol s_5_1[2] = { 'e', 'e' }; +static const symbol s_5_2[2] = { 'o', 'o' }; +static const symbol s_5_3[2] = { 'u', 'u' }; + +static const struct among a_5[4] = +{ +/* 0 */ { 2, s_5_0, -1, -1, 0}, +/* 1 */ { 2, s_5_1, -1, -1, 0}, +/* 2 */ { 2, s_5_2, -1, -1, 0}, +/* 3 */ { 2, s_5_3, -1, -1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + +static const unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + +static const unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + +static const symbol s_0[] = { 'a' }; +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[] = { '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) { /* forwardmode */ + int among_var; + { int c_test1 = z->c; /* test, line 42 */ + while(1) { /* repeat, line 42 */ + int c2 = z->c; + z->bra = z->c; /* [, line 43 */ + if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */ + among_var = find_among(z, a_0, 11); + if (!(among_var)) goto lab0; + z->ket = z->c; /* ], line 43 */ + switch (among_var) { /* among, line 43 */ + case 1: + { int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */ + if (ret < 0) return ret; + } + break; + case 6: + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 54 */ + break; + } + continue; + lab0: + z->c = c2; + break; + } + z->c = c_test1; + } + { int c3 = z->c; /* try, line 57 */ + z->bra = z->c; /* [, line 57 */ + if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */ + z->c++; + z->ket = z->c; /* ], 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 c4 = z->c; + while(1) { /* goto, line 58 */ + int c5 = z->c; + if (in_grouping(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */ + z->bra = z->c; /* [, line 59 */ + { int c6 = z->c; /* or, line 59 */ + if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */ + z->c++; + z->ket = z->c; /* ], line 59 */ + if (in_grouping(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */ + { int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */ + if (ret < 0) return ret; + } + goto lab4; + lab5: + z->c = c6; + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */ + z->c++; + z->ket = z->c; /* ], line 60 */ + { int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */ + if (ret < 0) return ret; + } + } + lab4: + z->c = c5; + break; + lab3: + z->c = c5; + if (z->c >= z->l) goto lab2; + z->c++; /* goto, line 58 */ + } + continue; + lab2: + z->c = c4; + break; + } + return 1; +} + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 66 */ + z->I[1] = z->l; /* $p2 = <integer expression>, line 67 */ + { /* gopast */ /* grouping v, line 69 */ + int ret = out_grouping(z, g_v, 97, 232, 1); + if (ret < 0) return 0; + z->c += ret; + } + { /* gopast */ /* non v, line 69 */ + int ret = in_grouping(z, g_v, 97, 232, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 69 */ + /* try, line 70 */ + if (!(z->I[0] < 3)) goto lab0; /* $(<integer expression> < <integer expression>), line 70 */ + z->I[0] = 3; /* $p1 = <integer expression>, line 70 */ +lab0: + { /* gopast */ /* grouping v, line 71 */ + int ret = out_grouping(z, g_v, 97, 232, 1); + if (ret < 0) return 0; + z->c += ret; + } + { /* gopast */ /* non v, line 71 */ + int ret = in_grouping(z, g_v, 97, 232, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[1] = z->c; /* setmark p2, line 71 */ + return 1; +} + +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 /* 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) { /* among, line 77 */ + case 1: + { 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_9); /* <-, line 79 */ + if (ret < 0) return ret; + } + break; + case 3: + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 80 */ + break; + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +static int r_R1(struct SN_env * z) { /* backwardmode */ + if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 87 */ + return 1; +} + +static int r_R2(struct SN_env * z) { /* backwardmode */ + if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 88 */ + return 1; +} + +static int r_undouble(struct SN_env * z) { /* backwardmode */ + { int m_test1 = z->l - z->c; /* test, line 91 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */ + 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; + z->c--; /* next, line 91 */ + z->bra = z->c; /* ], line 91 */ + { int ret = slice_del(z); /* delete, line 91 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_e_ending(struct SN_env * z) { /* backwardmode */ + z->B[0] = 0; /* unset e_found, line 95 */ + z->ket = z->c; /* [, line 96 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */ + z->c--; + z->bra = z->c; /* ], line 96 */ + { int ret = r_R1(z); /* call R1, line 96 */ + if (ret <= 0) return ret; + } + { int m_test1 = z->l - z->c; /* test, line 96 */ + if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */ + 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); /* call undouble, line 98 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_en_ending(struct SN_env * z) { /* backwardmode */ + { int ret = r_R1(z); /* call R1, line 102 */ + if (ret <= 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* and, line 102 */ + if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */ + z->c = z->l - m1; + { int m2 = z->l - z->c; (void)m2; /* not, line 102 */ + if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */ + return 0; + lab0: + z->c = z->l - m2; + } + } + { int ret = slice_del(z); /* delete, line 102 */ + 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) { /* 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; /* 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) { /* among, line 108 */ + case 1: + { 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_11); /* <-, line 110 */ + if (ret < 0) return ret; + } + break; + case 2: + { 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); /* 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; /* non v_j, line 116 */ + { int ret = slice_del(z); /* delete, line 116 */ + if (ret < 0) return ret; + } + break; + } + lab0: + z->c = z->l - m1; + } + { int m2 = z->l - z->c; (void)m2; /* do, line 120 */ + { int ret = r_e_ending(z); /* call e_ending, line 120 */ + 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 122 */ + z->ket = z->c; /* [, line 122 */ + if (!(eq_s_b(z, 4, s_12))) goto lab2; /* literal, line 122 */ + z->bra = z->c; /* ], 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 (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; + } + { int ret = slice_del(z); /* delete, line 122 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 123 */ + 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); /* call en_ending, line 123 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + lab2: + z->c = z->l - m3; + } + { int m5 = z->l - z->c; (void)m5; /* do, line 126 */ + z->ket = z->c; /* [, line 127 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto 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) { /* among, line 127 */ + case 1: + { 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 */ + if (ret < 0) return ret; + } + { int m6 = z->l - z->c; (void)m6; /* or, line 130 */ + z->ket = z->c; /* [, line 130 */ + if (!(eq_s_b(z, 2, s_14))) goto lab6; /* literal, line 130 */ + z->bra = z->c; /* ], 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 (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; + } + { int ret = slice_del(z); /* delete, line 130 */ + if (ret < 0) return ret; + } + goto lab5; + lab6: + z->c = z->l - m6; + { 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); /* 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 (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; + } + { int ret = slice_del(z); /* delete, line 133 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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); /* call e_ending, line 136 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + break; + case 4: + { 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 */ + if (ret < 0) return ret; + } + break; + case 5: + { 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 */ + { int ret = slice_del(z); /* delete, line 142 */ + if (ret < 0) return ret; + } + break; + } + lab4: + 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; /* 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; + z->c--; /* next, line 152 */ + z->bra = z->c; /* ], line 152 */ + { int ret = slice_del(z); /* delete, line 152 */ + if (ret < 0) return ret; + } + lab9: + z->c = z->l - m9; + } + return 1; +} + +extern int dutch_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 159 */ + { int ret = r_prelude(z); /* call prelude, line 159 */ + 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); /* call mark_regions, line 160 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + lab1: + z->c = c2; + } + z->lb = z->c; z->c = z->l; /* backwards, line 161 */ + + /* 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 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 = c3; + } + return 1; +} + +extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); } + +extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c new file mode 100644 index 0000000..87ff804 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c @@ -0,0 +1,1087 @@ +/* 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 english_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_exception2(struct SN_env * z); +static int r_exception1(struct SN_env * z); +static int r_Step_5(struct SN_env * z); +static int r_Step_4(struct SN_env * z); +static int r_Step_3(struct SN_env * z); +static int r_Step_2(struct SN_env * z); +static int r_Step_1c(struct SN_env * z); +static int r_Step_1b(struct SN_env * z); +static int r_Step_1a(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_shortv(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * english_ISO_8859_1_create_env(void); +extern void english_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[5] = { 'a', 'r', 's', 'e', 'n' }; +static const symbol s_0_1[6] = { 'c', 'o', 'm', 'm', 'u', 'n' }; +static const symbol s_0_2[5] = { 'g', 'e', 'n', 'e', 'r' }; + +static const struct among a_0[3] = +{ +/* 0 */ { 5, s_0_0, -1, -1, 0}, +/* 1 */ { 6, s_0_1, -1, -1, 0}, +/* 2 */ { 5, s_0_2, -1, -1, 0} +}; + +static const symbol s_1_0[1] = { '\'' }; +static const symbol s_1_1[3] = { '\'', 's', '\'' }; +static const symbol s_1_2[2] = { '\'', 's' }; + +static const struct among a_1[3] = +{ +/* 0 */ { 1, s_1_0, -1, 1, 0}, +/* 1 */ { 3, s_1_1, 0, 1, 0}, +/* 2 */ { 2, s_1_2, -1, 1, 0} +}; + +static const symbol s_2_0[3] = { 'i', 'e', 'd' }; +static const symbol s_2_1[1] = { 's' }; +static const symbol s_2_2[3] = { 'i', 'e', 's' }; +static const symbol s_2_3[4] = { 's', 's', 'e', 's' }; +static const symbol s_2_4[2] = { 's', 's' }; +static const symbol s_2_5[2] = { 'u', 's' }; + +static const struct among a_2[6] = +{ +/* 0 */ { 3, s_2_0, -1, 2, 0}, +/* 1 */ { 1, s_2_1, -1, 3, 0}, +/* 2 */ { 3, s_2_2, 1, 2, 0}, +/* 3 */ { 4, s_2_3, 1, 1, 0}, +/* 4 */ { 2, s_2_4, 1, -1, 0}, +/* 5 */ { 2, s_2_5, 1, -1, 0} +}; + +static const symbol s_3_1[2] = { 'b', 'b' }; +static const symbol s_3_2[2] = { 'd', 'd' }; +static const symbol s_3_3[2] = { 'f', 'f' }; +static const symbol s_3_4[2] = { 'g', 'g' }; +static const symbol s_3_5[2] = { 'b', 'l' }; +static const symbol s_3_6[2] = { 'm', 'm' }; +static const symbol s_3_7[2] = { 'n', 'n' }; +static const symbol s_3_8[2] = { 'p', 'p' }; +static const symbol s_3_9[2] = { 'r', 'r' }; +static const symbol s_3_10[2] = { 'a', 't' }; +static const symbol s_3_11[2] = { 't', 't' }; +static const symbol s_3_12[2] = { 'i', 'z' }; + +static const struct among a_3[13] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 2, s_3_1, 0, 2, 0}, +/* 2 */ { 2, s_3_2, 0, 2, 0}, +/* 3 */ { 2, s_3_3, 0, 2, 0}, +/* 4 */ { 2, s_3_4, 0, 2, 0}, +/* 5 */ { 2, s_3_5, 0, 1, 0}, +/* 6 */ { 2, s_3_6, 0, 2, 0}, +/* 7 */ { 2, s_3_7, 0, 2, 0}, +/* 8 */ { 2, s_3_8, 0, 2, 0}, +/* 9 */ { 2, s_3_9, 0, 2, 0}, +/* 10 */ { 2, s_3_10, 0, 1, 0}, +/* 11 */ { 2, s_3_11, 0, 2, 0}, +/* 12 */ { 2, s_3_12, 0, 1, 0} +}; + +static const symbol s_4_0[2] = { 'e', 'd' }; +static const symbol s_4_1[3] = { 'e', 'e', 'd' }; +static const symbol s_4_2[3] = { 'i', 'n', 'g' }; +static const symbol s_4_3[4] = { 'e', 'd', 'l', 'y' }; +static const symbol s_4_4[5] = { 'e', 'e', 'd', 'l', 'y' }; +static const symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' }; + +static const struct among a_4[6] = +{ +/* 0 */ { 2, s_4_0, -1, 2, 0}, +/* 1 */ { 3, s_4_1, 0, 1, 0}, +/* 2 */ { 3, s_4_2, -1, 2, 0}, +/* 3 */ { 4, s_4_3, -1, 2, 0}, +/* 4 */ { 5, s_4_4, 3, 1, 0}, +/* 5 */ { 5, s_4_5, -1, 2, 0} +}; + +static const symbol s_5_0[4] = { 'a', 'n', 'c', 'i' }; +static const symbol s_5_1[4] = { 'e', 'n', 'c', 'i' }; +static const symbol s_5_2[3] = { 'o', 'g', 'i' }; +static const symbol s_5_3[2] = { 'l', 'i' }; +static const symbol s_5_4[3] = { 'b', 'l', 'i' }; +static const symbol s_5_5[4] = { 'a', 'b', 'l', 'i' }; +static const symbol s_5_6[4] = { 'a', 'l', 'l', 'i' }; +static const symbol s_5_7[5] = { 'f', 'u', 'l', 'l', 'i' }; +static const symbol s_5_8[6] = { 'l', 'e', 's', 's', 'l', 'i' }; +static const symbol s_5_9[5] = { 'o', 'u', 's', 'l', 'i' }; +static const symbol s_5_10[5] = { 'e', 'n', 't', 'l', 'i' }; +static const symbol s_5_11[5] = { 'a', 'l', 'i', 't', 'i' }; +static const symbol s_5_12[6] = { 'b', 'i', 'l', 'i', 't', 'i' }; +static const symbol s_5_13[5] = { 'i', 'v', 'i', 't', 'i' }; +static const symbol s_5_14[6] = { 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_5_15[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_5_16[5] = { 'a', 'l', 'i', 's', 'm' }; +static const symbol s_5_17[5] = { 'a', 't', 'i', 'o', 'n' }; +static const symbol s_5_18[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' }; +static const symbol s_5_19[4] = { 'i', 'z', 'e', 'r' }; +static const symbol s_5_20[4] = { 'a', 't', 'o', 'r' }; +static const symbol s_5_21[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' }; +static const symbol s_5_22[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' }; +static const symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' }; + +static const struct among a_5[24] = +{ +/* 0 */ { 4, s_5_0, -1, 3, 0}, +/* 1 */ { 4, s_5_1, -1, 2, 0}, +/* 2 */ { 3, s_5_2, -1, 13, 0}, +/* 3 */ { 2, s_5_3, -1, 15, 0}, +/* 4 */ { 3, s_5_4, 3, 12, 0}, +/* 5 */ { 4, s_5_5, 4, 4, 0}, +/* 6 */ { 4, s_5_6, 3, 8, 0}, +/* 7 */ { 5, s_5_7, 3, 9, 0}, +/* 8 */ { 6, s_5_8, 3, 14, 0}, +/* 9 */ { 5, s_5_9, 3, 10, 0}, +/* 10 */ { 5, s_5_10, 3, 5, 0}, +/* 11 */ { 5, s_5_11, -1, 8, 0}, +/* 12 */ { 6, s_5_12, -1, 12, 0}, +/* 13 */ { 5, s_5_13, -1, 11, 0}, +/* 14 */ { 6, s_5_14, -1, 1, 0}, +/* 15 */ { 7, s_5_15, 14, 7, 0}, +/* 16 */ { 5, s_5_16, -1, 8, 0}, +/* 17 */ { 5, s_5_17, -1, 7, 0}, +/* 18 */ { 7, s_5_18, 17, 6, 0}, +/* 19 */ { 4, s_5_19, -1, 6, 0}, +/* 20 */ { 4, s_5_20, -1, 7, 0}, +/* 21 */ { 7, s_5_21, -1, 11, 0}, +/* 22 */ { 7, s_5_22, -1, 9, 0}, +/* 23 */ { 7, s_5_23, -1, 10, 0} +}; + +static const symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' }; +static const symbol s_6_1[5] = { 'a', 't', 'i', 'v', 'e' }; +static const symbol s_6_2[5] = { 'a', 'l', 'i', 'z', 'e' }; +static const symbol s_6_3[5] = { 'i', 'c', 'i', 't', 'i' }; +static const symbol s_6_4[4] = { 'i', 'c', 'a', 'l' }; +static const symbol s_6_5[6] = { 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_6_6[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_6_7[3] = { 'f', 'u', 'l' }; +static const symbol s_6_8[4] = { 'n', 'e', 's', 's' }; + +static const struct among a_6[9] = +{ +/* 0 */ { 5, s_6_0, -1, 4, 0}, +/* 1 */ { 5, s_6_1, -1, 6, 0}, +/* 2 */ { 5, s_6_2, -1, 3, 0}, +/* 3 */ { 5, s_6_3, -1, 4, 0}, +/* 4 */ { 4, s_6_4, -1, 4, 0}, +/* 5 */ { 6, s_6_5, -1, 1, 0}, +/* 6 */ { 7, s_6_6, 5, 2, 0}, +/* 7 */ { 3, s_6_7, -1, 5, 0}, +/* 8 */ { 4, s_6_8, -1, 5, 0} +}; + +static const symbol s_7_0[2] = { 'i', 'c' }; +static const symbol s_7_1[4] = { 'a', 'n', 'c', 'e' }; +static const symbol s_7_2[4] = { 'e', 'n', 'c', 'e' }; +static const symbol s_7_3[4] = { 'a', 'b', 'l', 'e' }; +static const symbol s_7_4[4] = { 'i', 'b', 'l', 'e' }; +static const symbol s_7_5[3] = { 'a', 't', 'e' }; +static const symbol s_7_6[3] = { 'i', 'v', 'e' }; +static const symbol s_7_7[3] = { 'i', 'z', 'e' }; +static const symbol s_7_8[3] = { 'i', 't', 'i' }; +static const symbol s_7_9[2] = { 'a', 'l' }; +static const symbol s_7_10[3] = { 'i', 's', 'm' }; +static const symbol s_7_11[3] = { 'i', 'o', 'n' }; +static const symbol s_7_12[2] = { 'e', 'r' }; +static const symbol s_7_13[3] = { 'o', 'u', 's' }; +static const symbol s_7_14[3] = { 'a', 'n', 't' }; +static const symbol s_7_15[3] = { 'e', 'n', 't' }; +static const symbol s_7_16[4] = { 'm', 'e', 'n', 't' }; +static const symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' }; + +static const struct among a_7[18] = +{ +/* 0 */ { 2, s_7_0, -1, 1, 0}, +/* 1 */ { 4, s_7_1, -1, 1, 0}, +/* 2 */ { 4, s_7_2, -1, 1, 0}, +/* 3 */ { 4, s_7_3, -1, 1, 0}, +/* 4 */ { 4, s_7_4, -1, 1, 0}, +/* 5 */ { 3, s_7_5, -1, 1, 0}, +/* 6 */ { 3, s_7_6, -1, 1, 0}, +/* 7 */ { 3, s_7_7, -1, 1, 0}, +/* 8 */ { 3, s_7_8, -1, 1, 0}, +/* 9 */ { 2, s_7_9, -1, 1, 0}, +/* 10 */ { 3, s_7_10, -1, 1, 0}, +/* 11 */ { 3, s_7_11, -1, 2, 0}, +/* 12 */ { 2, s_7_12, -1, 1, 0}, +/* 13 */ { 3, s_7_13, -1, 1, 0}, +/* 14 */ { 3, s_7_14, -1, 1, 0}, +/* 15 */ { 3, s_7_15, -1, 1, 0}, +/* 16 */ { 4, s_7_16, 15, 1, 0}, +/* 17 */ { 5, s_7_17, 16, 1, 0} +}; + +static const symbol s_8_0[1] = { 'e' }; +static const symbol s_8_1[1] = { 'l' }; + +static const struct among a_8[2] = +{ +/* 0 */ { 1, s_8_0, -1, 1, 0}, +/* 1 */ { 1, s_8_1, -1, 2, 0} +}; + +static const symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' }; +static const symbol s_9_1[7] = { 'p', 'r', 'o', 'c', 'e', 'e', 'd' }; +static const symbol s_9_2[6] = { 'e', 'x', 'c', 'e', 'e', 'd' }; +static const symbol s_9_3[7] = { 'c', 'a', 'n', 'n', 'i', 'n', 'g' }; +static const symbol s_9_4[6] = { 'i', 'n', 'n', 'i', 'n', 'g' }; +static const symbol s_9_5[7] = { 'e', 'a', 'r', 'r', 'i', 'n', 'g' }; +static const symbol s_9_6[7] = { 'h', 'e', 'r', 'r', 'i', 'n', 'g' }; +static const symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' }; + +static const struct among a_9[8] = +{ +/* 0 */ { 7, s_9_0, -1, -1, 0}, +/* 1 */ { 7, s_9_1, -1, -1, 0}, +/* 2 */ { 6, s_9_2, -1, -1, 0}, +/* 3 */ { 7, s_9_3, -1, -1, 0}, +/* 4 */ { 6, s_9_4, -1, -1, 0}, +/* 5 */ { 7, s_9_5, -1, -1, 0}, +/* 6 */ { 7, s_9_6, -1, -1, 0}, +/* 7 */ { 6, s_9_7, -1, -1, 0} +}; + +static const symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' }; +static const symbol s_10_1[5] = { 'a', 't', 'l', 'a', 's' }; +static const symbol s_10_2[4] = { 'b', 'i', 'a', 's' }; +static const symbol s_10_3[6] = { 'c', 'o', 's', 'm', 'o', 's' }; +static const symbol s_10_4[5] = { 'd', 'y', 'i', 'n', 'g' }; +static const symbol s_10_5[5] = { 'e', 'a', 'r', 'l', 'y' }; +static const symbol s_10_6[6] = { 'g', 'e', 'n', 't', 'l', 'y' }; +static const symbol s_10_7[4] = { 'h', 'o', 'w', 'e' }; +static const symbol s_10_8[4] = { 'i', 'd', 'l', 'y' }; +static const symbol s_10_9[5] = { 'l', 'y', 'i', 'n', 'g' }; +static const symbol s_10_10[4] = { 'n', 'e', 'w', 's' }; +static const symbol s_10_11[4] = { 'o', 'n', 'l', 'y' }; +static const symbol s_10_12[6] = { 's', 'i', 'n', 'g', 'l', 'y' }; +static const symbol s_10_13[5] = { 's', 'k', 'i', 'e', 's' }; +static const symbol s_10_14[4] = { 's', 'k', 'i', 's' }; +static const symbol s_10_15[3] = { 's', 'k', 'y' }; +static const symbol s_10_16[5] = { 't', 'y', 'i', 'n', 'g' }; +static const symbol s_10_17[4] = { 'u', 'g', 'l', 'y' }; + +static const struct among a_10[18] = +{ +/* 0 */ { 5, s_10_0, -1, -1, 0}, +/* 1 */ { 5, s_10_1, -1, -1, 0}, +/* 2 */ { 4, s_10_2, -1, -1, 0}, +/* 3 */ { 6, s_10_3, -1, -1, 0}, +/* 4 */ { 5, s_10_4, -1, 3, 0}, +/* 5 */ { 5, s_10_5, -1, 9, 0}, +/* 6 */ { 6, s_10_6, -1, 7, 0}, +/* 7 */ { 4, s_10_7, -1, -1, 0}, +/* 8 */ { 4, s_10_8, -1, 6, 0}, +/* 9 */ { 5, s_10_9, -1, 4, 0}, +/* 10 */ { 4, s_10_10, -1, -1, 0}, +/* 11 */ { 4, s_10_11, -1, 10, 0}, +/* 12 */ { 6, s_10_12, -1, 11, 0}, +/* 13 */ { 5, s_10_13, -1, 2, 0}, +/* 14 */ { 4, s_10_14, -1, 1, 0}, +/* 15 */ { 3, s_10_15, -1, -1, 0}, +/* 16 */ { 5, s_10_16, -1, 5, 0}, +/* 17 */ { 4, s_10_17, -1, 8, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1 }; + +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[] = { '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) { /* forwardmode */ + z->B[0] = 0; /* unset Y_found, line 26 */ + { int c1 = z->c; /* do, line 27 */ + z->bra = z->c; /* [, line 27 */ + if (z->c == z->l || z->p[z->c] != '\'') goto lab0; /* literal, line 27 */ + z->c++; + z->ket = z->c; /* ], line 27 */ + { int ret = slice_del(z); /* delete, line 27 */ + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + { int c2 = z->c; /* do, line 28 */ + z->bra = z->c; /* [, line 28 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab1; /* literal, line 28 */ + z->c++; + z->ket = z->c; /* ], 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 */ + lab1: + z->c = c2; + } + { int c3 = z->c; /* do, line 29 */ + while(1) { /* repeat, line 29 */ + int c4 = z->c; + while(1) { /* goto, line 29 */ + int c5 = z->c; + if (in_grouping(z, g_v, 97, 121, 0)) goto lab4; /* grouping v, line 29 */ + z->bra = z->c; /* [, line 29 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 29 */ + z->c++; + z->ket = z->c; /* ], line 29 */ + z->c = c5; + break; + lab4: + z->c = c5; + if (z->c >= z->l) goto lab3; + z->c++; /* goto, 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 */ + continue; + lab3: + z->c = c4; + break; + } + z->c = c3; + } + return 1; +} + +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; /* among, line 36 */ + if (!(find_among(z, a_0, 3))) goto lab2; + goto lab1; + lab2: + z->c = c2; + { /* gopast */ /* grouping v, line 41 */ + int ret = out_grouping(z, g_v, 97, 121, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + { /* gopast */ /* non v, line 41 */ + int ret = in_grouping(z, g_v, 97, 121, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + } + lab1: + z->I[0] = z->c; /* setmark p1, line 42 */ + { /* gopast */ /* grouping v, line 43 */ + int ret = out_grouping(z, g_v, 97, 121, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + { /* gopast */ /* non v, line 43 */ + int ret = in_grouping(z, g_v, 97, 121, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + z->I[1] = z->c; /* setmark p2, line 43 */ + lab0: + z->c = c1; + } + return 1; +} + +static int r_shortv(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* or, line 51 */ + if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) goto lab1; /* non v_WXY, line 50 */ + if (in_grouping_b(z, g_v, 97, 121, 0)) goto lab1; /* grouping v, line 50 */ + if (out_grouping_b(z, g_v, 97, 121, 0)) goto lab1; /* non v, line 50 */ + goto lab0; + lab1: + z->c = z->l - m1; + if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 52 */ + if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 52 */ + if (z->c > z->lb) return 0; /* atlimit, line 52 */ + } +lab0: + return 1; +} + +static int r_R1(struct SN_env * z) { /* backwardmode */ + if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 55 */ + return 1; +} + +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) { /* backwardmode */ + int among_var; + { int m1 = z->l - z->c; (void)m1; /* try, line 59 */ + z->ket = z->c; /* [, line 60 */ + if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; } /* substring, line 60 */ + if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; /* ], line 60 */ + { int ret = slice_del(z); /* delete, line 62 */ + if (ret < 0) return ret; + } + lab0: + ; + } + z->ket = z->c; /* [, line 65 */ + if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; /* substring, line 65 */ + among_var = find_among_b(z, a_2, 6); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 65 */ + switch (among_var) { /* among, line 65 */ + case 1: + { int ret = slice_from_s(z, 2, s_2); /* <-, line 66 */ + if (ret < 0) return ret; + } + break; + case 2: + { int m2 = z->l - z->c; (void)m2; /* or, line 68 */ + { int ret = z->c - 2; /* hop, line 68 */ + if (z->lb > ret || ret > z->l) goto lab2; + z->c = ret; + } + { int ret = slice_from_s(z, 1, s_3); /* <-, line 68 */ + if (ret < 0) return ret; + } + goto lab1; + lab2: + z->c = z->l - m2; + { int ret = slice_from_s(z, 2, s_4); /* <-, line 68 */ + if (ret < 0) return ret; + } + } + lab1: + break; + case 3: + if (z->c <= z->lb) return 0; + z->c--; /* next, line 69 */ + { /* gopast */ /* grouping v, line 69 */ + int ret = out_grouping_b(z, g_v, 97, 121, 1); + if (ret < 0) return 0; + z->c -= ret; + } + { int ret = slice_del(z); /* delete, line 69 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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) { /* among, line 75 */ + case 1: + { int ret = r_R1(z); /* call R1, line 77 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 2, s_5); /* <-, line 77 */ + if (ret < 0) return ret; + } + break; + case 2: + { 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_test1; + } + { int ret = slice_del(z); /* delete, line 80 */ + if (ret < 0) return ret; + } + { int m_test2 = z->l - z->c; /* test, line 81 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 81 */ + among_var = find_among_b(z, a_3, 13); + if (!(among_var)) return 0; + z->c = z->l - m_test2; + } + switch (among_var) { /* among, line 81 */ + case 1: + { 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; + case 2: + z->ket = z->c; /* [, line 86 */ + if (z->c <= z->lb) return 0; + z->c--; /* next, line 86 */ + z->bra = z->c; /* ], line 86 */ + { int ret = slice_del(z); /* delete, line 86 */ + if (ret < 0) return ret; + } + break; + case 3: + if (z->c != z->I[0]) return 0; /* atmark, line 87 */ + { int m_test3 = z->l - z->c; /* test, line 87 */ + { int ret = r_shortv(z); /* call shortv, line 87 */ + if (ret <= 0) return ret; + } + z->c = z->l - m_test3; + } + { int ret; + { int saved_c = z->c; + ret = insert_s(z, z->c, z->c, 1, s_7); /* <+, line 87 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + break; + } + break; + } + return 1; +} + +static int r_Step_1c(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 94 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 94 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 94 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 94 */ + z->c--; + } +lab0: + z->bra = z->c; /* ], line 94 */ + if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 95 */ + /* not, line 95 */ + if (z->c > z->lb) goto lab2; /* atlimit, line 95 */ + 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) { /* 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; /* 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); /* call R1, line 100 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 100 */ + case 1: + { 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_10); /* <-, line 102 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_12); /* <-, line 104 */ + if (ret < 0) return ret; + } + break; + case 5: + { 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_14); /* <-, line 107 */ + if (ret < 0) return ret; + } + break; + case 7: + { 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_16); /* <-, line 111 */ + if (ret < 0) return ret; + } + break; + case 9: + { 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_18); /* <-, line 114 */ + if (ret < 0) return ret; + } + break; + case 11: + { 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_20); /* <-, line 118 */ + if (ret < 0) return ret; + } + break; + case 13: + 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, 4, s_22); /* <-, line 121 */ + if (ret < 0) return ret; + } + break; + case 15: + if (in_grouping_b(z, g_valid_LI, 99, 116, 0)) return 0; /* grouping valid_LI, line 122 */ + { int ret = slice_del(z); /* delete, line 122 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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); /* call R1, line 127 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 127 */ + case 1: + { 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_24); /* <-, line 129 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_26); /* <-, line 132 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_del(z); /* delete, line 134 */ + if (ret < 0) return ret; + } + break; + case 6: + { 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; + } + break; + } + return 1; +} + +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; /* 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); /* call R2, line 141 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 141 */ + case 1: + { int ret = slice_del(z); /* delete, line 144 */ + if (ret < 0) return ret; + } + break; + case 2: + { int m1 = z->l - z->c; (void)m1; /* or, line 145 */ + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 145 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 145 */ + z->c--; + } + lab0: + { int ret = slice_del(z); /* delete, line 145 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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) { /* among, line 150 */ + case 1: + { int m1 = z->l - z->c; (void)m1; /* or, 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); /* 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); /* call shortv, line 151 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + return 0; + lab2: + z->c = z->l - m2; + } + } + lab0: + { int ret = slice_del(z); /* delete, line 151 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = r_R2(z); /* call R2, line 152 */ + if (ret <= 0) return ret; + } + 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; + } + break; + } + return 1; +} + +static int r_exception2(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 158 */ + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 158 */ + 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) { /* 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; /* 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) { /* among, line 170 */ + case 1: + { 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_28); /* <-, line 175 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_30); /* <-, line 177 */ + if (ret < 0) return ret; + } + break; + case 5: + { 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_32); /* <-, line 182 */ + if (ret < 0) return ret; + } + break; + case 7: + { 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_34); /* <-, line 184 */ + if (ret < 0) return ret; + } + break; + case 9: + { 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_36); /* <-, line 186 */ + if (ret < 0) return ret; + } + break; + case 11: + { int ret = slice_from_s(z, 5, s_37); /* <-, line 187 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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 (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; + lab1: + z->c = c2; + if (z->c >= z->l) goto lab0; + z->c++; /* goto, line 203 */ + } + { int ret = slice_from_s(z, 1, s_38); /* <-, line 203 */ + if (ret < 0) return ret; + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +extern int english_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* or, line 207 */ + { int ret = r_exception1(z); /* call exception1, line 207 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = c1; + { int c2 = z->c; /* not, line 208 */ + { int ret = z->c + 3; /* hop, line 208 */ + if (0 > ret || ret > z->l) goto lab3; + z->c = ret; + } + goto lab2; + lab3: + z->c = c2; + } + goto lab0; + lab2: + z->c = c1; + /* do, line 209 */ + { int ret = r_prelude(z); /* call prelude, line 209 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + 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 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 - m3; + } + { 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 - 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 - m5; + } + { 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 - m6; + } + { 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 - m7; + } + { 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 - m8; + } + { 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 - m9; + } + { 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 - m10; + } + } + lab7: + z->c = z->lb; + { 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 = c11; + } + } +lab0: + return 1; +} + +extern struct SN_env * english_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); } + +extern void english_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c new file mode 100644 index 0000000..58285e8 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c @@ -0,0 +1,735 @@ +/* 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 finnish_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_tidy(struct SN_env * z); +static int r_other_endings(struct SN_env * z); +static int r_t_plural(struct SN_env * z); +static int r_i_plural(struct SN_env * z); +static int r_case_ending(struct SN_env * z); +static int r_VI(struct SN_env * z); +static int r_LONG(struct SN_env * z); +static int r_possessive(struct SN_env * z); +static int r_particle_etc(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * finnish_ISO_8859_1_create_env(void); +extern void finnish_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[2] = { 'p', 'a' }; +static const symbol s_0_1[3] = { 's', 't', 'i' }; +static const symbol s_0_2[4] = { 'k', 'a', 'a', 'n' }; +static const symbol s_0_3[3] = { 'h', 'a', 'n' }; +static const symbol s_0_4[3] = { 'k', 'i', 'n' }; +static const symbol s_0_5[3] = { 'h', 0xE4, 'n' }; +static const symbol s_0_6[4] = { 'k', 0xE4, 0xE4, 'n' }; +static const symbol s_0_7[2] = { 'k', 'o' }; +static const symbol s_0_8[2] = { 'p', 0xE4 }; +static const symbol s_0_9[2] = { 'k', 0xF6 }; + +static const struct among a_0[10] = +{ +/* 0 */ { 2, s_0_0, -1, 1, 0}, +/* 1 */ { 3, s_0_1, -1, 2, 0}, +/* 2 */ { 4, s_0_2, -1, 1, 0}, +/* 3 */ { 3, s_0_3, -1, 1, 0}, +/* 4 */ { 3, s_0_4, -1, 1, 0}, +/* 5 */ { 3, s_0_5, -1, 1, 0}, +/* 6 */ { 4, s_0_6, -1, 1, 0}, +/* 7 */ { 2, s_0_7, -1, 1, 0}, +/* 8 */ { 2, s_0_8, -1, 1, 0}, +/* 9 */ { 2, s_0_9, -1, 1, 0} +}; + +static const symbol s_1_0[3] = { 'l', 'l', 'a' }; +static const symbol s_1_1[2] = { 'n', 'a' }; +static const symbol s_1_2[3] = { 's', 's', 'a' }; +static const symbol s_1_3[2] = { 't', 'a' }; +static const symbol s_1_4[3] = { 'l', 't', 'a' }; +static const symbol s_1_5[3] = { 's', 't', 'a' }; + +static const struct among a_1[6] = +{ +/* 0 */ { 3, s_1_0, -1, -1, 0}, +/* 1 */ { 2, s_1_1, -1, -1, 0}, +/* 2 */ { 3, s_1_2, -1, -1, 0}, +/* 3 */ { 2, s_1_3, -1, -1, 0}, +/* 4 */ { 3, s_1_4, 3, -1, 0}, +/* 5 */ { 3, s_1_5, 3, -1, 0} +}; + +static const symbol s_2_0[3] = { 'l', 'l', 0xE4 }; +static const symbol s_2_1[2] = { 'n', 0xE4 }; +static const symbol s_2_2[3] = { 's', 's', 0xE4 }; +static const symbol s_2_3[2] = { 't', 0xE4 }; +static const symbol s_2_4[3] = { 'l', 't', 0xE4 }; +static const symbol s_2_5[3] = { 's', 't', 0xE4 }; + +static const struct among a_2[6] = +{ +/* 0 */ { 3, s_2_0, -1, -1, 0}, +/* 1 */ { 2, s_2_1, -1, -1, 0}, +/* 2 */ { 3, s_2_2, -1, -1, 0}, +/* 3 */ { 2, s_2_3, -1, -1, 0}, +/* 4 */ { 3, s_2_4, 3, -1, 0}, +/* 5 */ { 3, s_2_5, 3, -1, 0} +}; + +static const symbol s_3_0[3] = { 'l', 'l', 'e' }; +static const symbol s_3_1[3] = { 'i', 'n', 'e' }; + +static const struct among a_3[2] = +{ +/* 0 */ { 3, s_3_0, -1, -1, 0}, +/* 1 */ { 3, s_3_1, -1, -1, 0} +}; + +static const symbol s_4_0[3] = { 'n', 's', 'a' }; +static const symbol s_4_1[3] = { 'm', 'm', 'e' }; +static const symbol s_4_2[3] = { 'n', 'n', 'e' }; +static const symbol s_4_3[2] = { 'n', 'i' }; +static const symbol s_4_4[2] = { 's', 'i' }; +static const symbol s_4_5[2] = { 'a', 'n' }; +static const symbol s_4_6[2] = { 'e', 'n' }; +static const symbol s_4_7[2] = { 0xE4, 'n' }; +static const symbol s_4_8[3] = { 'n', 's', 0xE4 }; + +static const struct among a_4[9] = +{ +/* 0 */ { 3, s_4_0, -1, 3, 0}, +/* 1 */ { 3, s_4_1, -1, 3, 0}, +/* 2 */ { 3, s_4_2, -1, 3, 0}, +/* 3 */ { 2, s_4_3, -1, 2, 0}, +/* 4 */ { 2, s_4_4, -1, 1, 0}, +/* 5 */ { 2, s_4_5, -1, 4, 0}, +/* 6 */ { 2, s_4_6, -1, 6, 0}, +/* 7 */ { 2, s_4_7, -1, 5, 0}, +/* 8 */ { 3, s_4_8, -1, 3, 0} +}; + +static const symbol s_5_0[2] = { 'a', 'a' }; +static const symbol s_5_1[2] = { 'e', 'e' }; +static const symbol s_5_2[2] = { 'i', 'i' }; +static const symbol s_5_3[2] = { 'o', 'o' }; +static const symbol s_5_4[2] = { 'u', 'u' }; +static const symbol s_5_5[2] = { 0xE4, 0xE4 }; +static const symbol s_5_6[2] = { 0xF6, 0xF6 }; + +static const struct among a_5[7] = +{ +/* 0 */ { 2, s_5_0, -1, -1, 0}, +/* 1 */ { 2, s_5_1, -1, -1, 0}, +/* 2 */ { 2, s_5_2, -1, -1, 0}, +/* 3 */ { 2, s_5_3, -1, -1, 0}, +/* 4 */ { 2, s_5_4, -1, -1, 0}, +/* 5 */ { 2, s_5_5, -1, -1, 0}, +/* 6 */ { 2, s_5_6, -1, -1, 0} +}; + +static const symbol s_6_0[1] = { 'a' }; +static const symbol s_6_1[3] = { 'l', 'l', 'a' }; +static const symbol s_6_2[2] = { 'n', 'a' }; +static const symbol s_6_3[3] = { 's', 's', 'a' }; +static const symbol s_6_4[2] = { 't', 'a' }; +static const symbol s_6_5[3] = { 'l', 't', 'a' }; +static const symbol s_6_6[3] = { 's', 't', 'a' }; +static const symbol s_6_7[3] = { 't', 't', 'a' }; +static const symbol s_6_8[3] = { 'l', 'l', 'e' }; +static const symbol s_6_9[3] = { 'i', 'n', 'e' }; +static const symbol s_6_10[3] = { 'k', 's', 'i' }; +static const symbol s_6_11[1] = { 'n' }; +static const symbol s_6_12[3] = { 'h', 'a', 'n' }; +static const symbol s_6_13[3] = { 'd', 'e', 'n' }; +static const symbol s_6_14[4] = { 's', 'e', 'e', 'n' }; +static const symbol s_6_15[3] = { 'h', 'e', 'n' }; +static const symbol s_6_16[4] = { 't', 't', 'e', 'n' }; +static const symbol s_6_17[3] = { 'h', 'i', 'n' }; +static const symbol s_6_18[4] = { 's', 'i', 'i', 'n' }; +static const symbol s_6_19[3] = { 'h', 'o', 'n' }; +static const symbol s_6_20[3] = { 'h', 0xE4, 'n' }; +static const symbol s_6_21[3] = { 'h', 0xF6, 'n' }; +static const symbol s_6_22[1] = { 0xE4 }; +static const symbol s_6_23[3] = { 'l', 'l', 0xE4 }; +static const symbol s_6_24[2] = { 'n', 0xE4 }; +static const symbol s_6_25[3] = { 's', 's', 0xE4 }; +static const symbol s_6_26[2] = { 't', 0xE4 }; +static const symbol s_6_27[3] = { 'l', 't', 0xE4 }; +static const symbol s_6_28[3] = { 's', 't', 0xE4 }; +static const symbol s_6_29[3] = { 't', 't', 0xE4 }; + +static const struct among a_6[30] = +{ +/* 0 */ { 1, s_6_0, -1, 8, 0}, +/* 1 */ { 3, s_6_1, 0, -1, 0}, +/* 2 */ { 2, s_6_2, 0, -1, 0}, +/* 3 */ { 3, s_6_3, 0, -1, 0}, +/* 4 */ { 2, s_6_4, 0, -1, 0}, +/* 5 */ { 3, s_6_5, 4, -1, 0}, +/* 6 */ { 3, s_6_6, 4, -1, 0}, +/* 7 */ { 3, s_6_7, 4, 2, 0}, +/* 8 */ { 3, s_6_8, -1, -1, 0}, +/* 9 */ { 3, s_6_9, -1, -1, 0}, +/* 10 */ { 3, s_6_10, -1, -1, 0}, +/* 11 */ { 1, s_6_11, -1, 7, 0}, +/* 12 */ { 3, s_6_12, 11, 1, 0}, +/* 13 */ { 3, s_6_13, 11, -1, r_VI}, +/* 14 */ { 4, s_6_14, 11, -1, r_LONG}, +/* 15 */ { 3, s_6_15, 11, 2, 0}, +/* 16 */ { 4, s_6_16, 11, -1, r_VI}, +/* 17 */ { 3, s_6_17, 11, 3, 0}, +/* 18 */ { 4, s_6_18, 11, -1, r_VI}, +/* 19 */ { 3, s_6_19, 11, 4, 0}, +/* 20 */ { 3, s_6_20, 11, 5, 0}, +/* 21 */ { 3, s_6_21, 11, 6, 0}, +/* 22 */ { 1, s_6_22, -1, 8, 0}, +/* 23 */ { 3, s_6_23, 22, -1, 0}, +/* 24 */ { 2, s_6_24, 22, -1, 0}, +/* 25 */ { 3, s_6_25, 22, -1, 0}, +/* 26 */ { 2, s_6_26, 22, -1, 0}, +/* 27 */ { 3, s_6_27, 26, -1, 0}, +/* 28 */ { 3, s_6_28, 26, -1, 0}, +/* 29 */ { 3, s_6_29, 26, 2, 0} +}; + +static const symbol s_7_0[3] = { 'e', 'j', 'a' }; +static const symbol s_7_1[3] = { 'm', 'm', 'a' }; +static const symbol s_7_2[4] = { 'i', 'm', 'm', 'a' }; +static const symbol s_7_3[3] = { 'm', 'p', 'a' }; +static const symbol s_7_4[4] = { 'i', 'm', 'p', 'a' }; +static const symbol s_7_5[3] = { 'm', 'm', 'i' }; +static const symbol s_7_6[4] = { 'i', 'm', 'm', 'i' }; +static const symbol s_7_7[3] = { 'm', 'p', 'i' }; +static const symbol s_7_8[4] = { 'i', 'm', 'p', 'i' }; +static const symbol s_7_9[3] = { 'e', 'j', 0xE4 }; +static const symbol s_7_10[3] = { 'm', 'm', 0xE4 }; +static const symbol s_7_11[4] = { 'i', 'm', 'm', 0xE4 }; +static const symbol s_7_12[3] = { 'm', 'p', 0xE4 }; +static const symbol s_7_13[4] = { 'i', 'm', 'p', 0xE4 }; + +static const struct among a_7[14] = +{ +/* 0 */ { 3, s_7_0, -1, -1, 0}, +/* 1 */ { 3, s_7_1, -1, 1, 0}, +/* 2 */ { 4, s_7_2, 1, -1, 0}, +/* 3 */ { 3, s_7_3, -1, 1, 0}, +/* 4 */ { 4, s_7_4, 3, -1, 0}, +/* 5 */ { 3, s_7_5, -1, 1, 0}, +/* 6 */ { 4, s_7_6, 5, -1, 0}, +/* 7 */ { 3, s_7_7, -1, 1, 0}, +/* 8 */ { 4, s_7_8, 7, -1, 0}, +/* 9 */ { 3, s_7_9, -1, -1, 0}, +/* 10 */ { 3, s_7_10, -1, 1, 0}, +/* 11 */ { 4, s_7_11, 10, -1, 0}, +/* 12 */ { 3, s_7_12, -1, 1, 0}, +/* 13 */ { 4, s_7_13, 12, -1, 0} +}; + +static const symbol s_8_0[1] = { 'i' }; +static const symbol s_8_1[1] = { 'j' }; + +static const struct among a_8[2] = +{ +/* 0 */ { 1, s_8_0, -1, -1, 0}, +/* 1 */ { 1, s_8_1, -1, -1, 0} +}; + +static const symbol s_9_0[3] = { 'm', 'm', 'a' }; +static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' }; + +static const struct among a_9[2] = +{ +/* 0 */ { 3, s_9_0, -1, 1, 0}, +/* 1 */ { 4, s_9_1, 0, -1, 0} +}; + +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', '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) { /* 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[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; + } + 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; /* grouping particle_end, line 63 */ + break; + case 2: + { int ret = r_R2(z); /* call R2, line 65 */ + if (ret <= 0) return ret; + } + break; + } + { int ret = slice_del(z); /* delete, line 67 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_possessive(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 70 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 70 */ + among_var = find_among_b(z, a_4, 9); /* substring, line 70 */ + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 70 */ + z->lb = mlimit1; + } + switch (among_var) { /* among, line 71 */ + case 1: + { int m2 = z->l - z->c; (void)m2; /* not, line 73 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; /* literal, line 73 */ + z->c--; + return 0; + lab0: + z->c = z->l - m2; + } + { int ret = slice_del(z); /* delete, line 73 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 75 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 75 */ + if (!(eq_s_b(z, 3, s_0))) return 0; /* literal, line 75 */ + z->bra = z->c; /* ], line 75 */ + { int ret = slice_from_s(z, 3, s_1); /* <-, line 75 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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; /* 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; /* 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; /* 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; + } + return 1; +} + +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) { /* 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) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 97 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 97 */ + among_var = find_among_b(z, a_6, 30); /* substring, line 97 */ + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 97 */ + z->lb = mlimit1; + } + switch (among_var) { /* among, line 98 */ + case 1: + if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */ + z->c--; + break; + case 2: + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */ + z->c--; + break; + case 3: + if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */ + z->c--; + break; + case 4: + if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */ + z->c--; + break; + case 5: + if (z->c <= z->lb || z->p[z->c - 1] != 0xE4) return 0; /* literal, line 103 */ + z->c--; + break; + case 6: + if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) return 0; /* literal, line 104 */ + z->c--; + break; + case 7: + { int m2 = z->l - z->c; (void)m2; /* try, line 112 */ + { int m3 = z->l - z->c; (void)m3; /* and, line 114 */ + { int m4 = z->l - z->c; (void)m4; /* or, line 113 */ + { int ret = r_LONG(z); /* call LONG, line 112 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + goto lab1; + lab2: + z->c = z->l - m4; + if (!(eq_s_b(z, 2, s_2))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */ + } + lab1: + 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 114 */ + lab0: + ; + } + break; + case 8: + if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */ + if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */ + break; + } + { int ret = slice_del(z); /* delete, line 139 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set ending_removed, line 140 */ + return 1; +} + +static int r_other_endings(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 143 */ + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; /* [, line 143 */ + among_var = find_among_b(z, a_7, 14); /* substring, line 143 */ + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 143 */ + z->lb = mlimit1; + } + switch (among_var) { /* among, line 144 */ + case 1: + { int m2 = z->l - z->c; (void)m2; /* not, line 147 */ + if (!(eq_s_b(z, 2, s_3))) goto lab0; /* literal, line 147 */ + return 0; + lab0: + z->c = z->l - m2; + } + break; + } + { int ret = slice_del(z); /* delete, line 152 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_i_plural(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 155 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 155 */ + if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } /* substring, line 155 */ + 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 159 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_t_plural(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 162 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 163 */ + if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */ + 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 164 */ + if (ret < 0) return ret; + } + z->lb = mlimit1; + } + + { int mlimit3; /* setlimit, line 166 */ + if (z->c < z->I[1]) return 0; + mlimit3 = z->lb; z->lb = z->I[1]; + z->ket = z->c; /* [, line 166 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */ + 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) { /* among, line 167 */ + case 1: + { int m4 = z->l - z->c; (void)m4; /* not, line 168 */ + if (!(eq_s_b(z, 2, s_4))) goto lab0; /* literal, line 168 */ + return 0; + lab0: + z->c = z->l - m4; + } + break; + } + { int ret = slice_del(z); /* delete, line 171 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_tidy(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 174 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + { int m2 = z->l - z->c; (void)m2; /* do, line 175 */ + { int m3 = z->l - z->c; (void)m3; /* and, line 175 */ + { int ret = r_LONG(z); /* call LONG, line 175 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + z->c = z->l - m3; + z->ket = z->c; /* [, line 175 */ + if (z->c <= z->lb) goto lab0; + z->c--; /* next, line 175 */ + z->bra = z->c; /* ], line 175 */ + { int ret = slice_del(z); /* delete, line 175 */ + if (ret < 0) return ret; + } + } + lab0: + z->c = z->l - m2; + } + { int m4 = z->l - z->c; (void)m4; /* do, line 176 */ + z->ket = z->c; /* [, line 176 */ + if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 176 */ + z->bra = z->c; /* ], line 176 */ + if (in_grouping_b(z, g_C, 98, 122, 0)) goto lab1; /* grouping C, line 176 */ + { int ret = slice_del(z); /* delete, line 176 */ + if (ret < 0) return ret; + } + lab1: + z->c = z->l - m4; + } + { int m5 = z->l - z->c; (void)m5; /* do, line 177 */ + z->ket = z->c; /* [, line 177 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; /* literal, line 177 */ + 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 (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 177 */ + if (ret < 0) return ret; + } + lab2: + z->c = z->l - m5; + } + { int m7 = z->l - z->c; (void)m7; /* do, line 178 */ + z->ket = z->c; /* [, line 178 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 178 */ + 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 = mlimit1; + } + if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */ + z->ket = z->c; /* [, line 180 */ + if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */ + z->bra = z->c; /* ], line 180 */ + z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */ + if (z->S[0] == 0) return -1; /* -> x, line 180 */ + if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */ + { int ret = slice_del(z); /* delete, line 180 */ + if (ret < 0) return ret; + } + return 1; +} + +extern int finnish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 186 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 186 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + 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 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 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 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 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; + } + /* 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; + } + lab7: + z->c = z->l - m6; + } + 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 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 - m8; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * finnish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2, 1); } + +extern void finnish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c new file mode 100644 index 0000000..4e9f76c --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c @@ -0,0 +1,1263 @@ +/* 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 french_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_un_accent(struct SN_env * z); +static int r_un_double(struct SN_env * z); +static int r_residual_suffix(struct SN_env * z); +static int r_verb_suffix(struct SN_env * z); +static int r_i_verb_suffix(struct SN_env * z); +static int r_standard_suffix(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * french_ISO_8859_1_create_env(void); +extern void french_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[3] = { 'c', 'o', 'l' }; +static const symbol s_0_1[3] = { 'p', 'a', 'r' }; +static const symbol s_0_2[3] = { 't', 'a', 'p' }; + +static const struct among a_0[3] = +{ +/* 0 */ { 3, s_0_0, -1, -1, 0}, +/* 1 */ { 3, s_0_1, -1, -1, 0}, +/* 2 */ { 3, s_0_2, -1, -1, 0} +}; + +static const symbol s_1_1[1] = { 'H' }; +static const symbol s_1_2[2] = { 'H', 'e' }; +static const symbol s_1_3[2] = { 'H', 'i' }; +static const symbol s_1_4[1] = { 'I' }; +static const symbol s_1_5[1] = { 'U' }; +static const symbol s_1_6[1] = { 'Y' }; + +static const struct among a_1[7] = +{ +/* 0 */ { 0, 0, -1, 7, 0}, +/* 1 */ { 1, s_1_1, 0, 6, 0}, +/* 2 */ { 2, s_1_2, 1, 4, 0}, +/* 3 */ { 2, s_1_3, 1, 5, 0}, +/* 4 */ { 1, s_1_4, 0, 1, 0}, +/* 5 */ { 1, s_1_5, 0, 2, 0}, +/* 6 */ { 1, s_1_6, 0, 3, 0} +}; + +static const symbol s_2_0[3] = { 'i', 'q', 'U' }; +static const symbol s_2_1[3] = { 'a', 'b', 'l' }; +static const symbol s_2_2[3] = { 'I', 0xE8, 'r' }; +static const symbol s_2_3[3] = { 'i', 0xE8, 'r' }; +static const symbol s_2_4[3] = { 'e', 'u', 's' }; +static const symbol s_2_5[2] = { 'i', 'v' }; + +static const struct among a_2[6] = +{ +/* 0 */ { 3, s_2_0, -1, 3, 0}, +/* 1 */ { 3, s_2_1, -1, 3, 0}, +/* 2 */ { 3, s_2_2, -1, 4, 0}, +/* 3 */ { 3, s_2_3, -1, 4, 0}, +/* 4 */ { 3, s_2_4, -1, 2, 0}, +/* 5 */ { 2, s_2_5, -1, 1, 0} +}; + +static const symbol s_3_0[2] = { 'i', 'c' }; +static const symbol s_3_1[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_3_2[2] = { 'i', 'v' }; + +static const struct among a_3[3] = +{ +/* 0 */ { 2, s_3_0, -1, 2, 0}, +/* 1 */ { 4, s_3_1, -1, 1, 0}, +/* 2 */ { 2, s_3_2, -1, 3, 0} +}; + +static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' }; +static const symbol s_4_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' }; +static const symbol s_4_2[4] = { 'a', 'n', 'c', 'e' }; +static const symbol s_4_3[4] = { 'e', 'n', 'c', 'e' }; +static const symbol s_4_4[5] = { 'l', 'o', 'g', 'i', 'e' }; +static const symbol s_4_5[4] = { 'a', 'b', 'l', 'e' }; +static const symbol s_4_6[4] = { 'i', 's', 'm', 'e' }; +static const symbol s_4_7[4] = { 'e', 'u', 's', 'e' }; +static const symbol s_4_8[4] = { 'i', 's', 't', 'e' }; +static const symbol s_4_9[3] = { 'i', 'v', 'e' }; +static const symbol s_4_10[2] = { 'i', 'f' }; +static const symbol s_4_11[5] = { 'u', 's', 'i', 'o', 'n' }; +static const symbol s_4_12[5] = { 'a', 't', 'i', 'o', 'n' }; +static const symbol s_4_13[5] = { 'u', 't', 'i', 'o', 'n' }; +static const symbol s_4_14[5] = { 'a', 't', 'e', 'u', 'r' }; +static const symbol s_4_15[5] = { 'i', 'q', 'U', 'e', 's' }; +static const symbol s_4_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' }; +static const symbol s_4_17[5] = { 'a', 'n', 'c', 'e', 's' }; +static const symbol s_4_18[5] = { 'e', 'n', 'c', 'e', 's' }; +static const symbol s_4_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' }; +static const symbol s_4_20[5] = { 'a', 'b', 'l', 'e', 's' }; +static const symbol s_4_21[5] = { 'i', 's', 'm', 'e', 's' }; +static const symbol s_4_22[5] = { 'e', 'u', 's', 'e', 's' }; +static const symbol s_4_23[5] = { 'i', 's', 't', 'e', 's' }; +static const symbol s_4_24[4] = { 'i', 'v', 'e', 's' }; +static const symbol s_4_25[3] = { 'i', 'f', 's' }; +static const symbol s_4_26[6] = { 'u', 's', 'i', 'o', 'n', 's' }; +static const symbol s_4_27[6] = { 'a', 't', 'i', 'o', 'n', 's' }; +static const symbol s_4_28[6] = { 'u', 't', 'i', 'o', 'n', 's' }; +static const symbol s_4_29[6] = { 'a', 't', 'e', 'u', 'r', 's' }; +static const symbol s_4_30[5] = { 'm', 'e', 'n', 't', 's' }; +static const symbol s_4_31[6] = { 'e', 'm', 'e', 'n', 't', 's' }; +static const symbol s_4_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' }; +static const symbol s_4_33[4] = { 'i', 't', 0xE9, 's' }; +static const symbol s_4_34[4] = { 'm', 'e', 'n', 't' }; +static const symbol s_4_35[5] = { 'e', 'm', 'e', 'n', 't' }; +static const symbol s_4_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' }; +static const symbol s_4_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' }; +static const symbol s_4_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' }; +static const symbol s_4_39[3] = { 'a', 'u', 'x' }; +static const symbol s_4_40[4] = { 'e', 'a', 'u', 'x' }; +static const symbol s_4_41[3] = { 'e', 'u', 'x' }; +static const symbol s_4_42[3] = { 'i', 't', 0xE9 }; + +static const struct among a_4[43] = +{ +/* 0 */ { 4, s_4_0, -1, 1, 0}, +/* 1 */ { 6, s_4_1, -1, 2, 0}, +/* 2 */ { 4, s_4_2, -1, 1, 0}, +/* 3 */ { 4, s_4_3, -1, 5, 0}, +/* 4 */ { 5, s_4_4, -1, 3, 0}, +/* 5 */ { 4, s_4_5, -1, 1, 0}, +/* 6 */ { 4, s_4_6, -1, 1, 0}, +/* 7 */ { 4, s_4_7, -1, 11, 0}, +/* 8 */ { 4, s_4_8, -1, 1, 0}, +/* 9 */ { 3, s_4_9, -1, 8, 0}, +/* 10 */ { 2, s_4_10, -1, 8, 0}, +/* 11 */ { 5, s_4_11, -1, 4, 0}, +/* 12 */ { 5, s_4_12, -1, 2, 0}, +/* 13 */ { 5, s_4_13, -1, 4, 0}, +/* 14 */ { 5, s_4_14, -1, 2, 0}, +/* 15 */ { 5, s_4_15, -1, 1, 0}, +/* 16 */ { 7, s_4_16, -1, 2, 0}, +/* 17 */ { 5, s_4_17, -1, 1, 0}, +/* 18 */ { 5, s_4_18, -1, 5, 0}, +/* 19 */ { 6, s_4_19, -1, 3, 0}, +/* 20 */ { 5, s_4_20, -1, 1, 0}, +/* 21 */ { 5, s_4_21, -1, 1, 0}, +/* 22 */ { 5, s_4_22, -1, 11, 0}, +/* 23 */ { 5, s_4_23, -1, 1, 0}, +/* 24 */ { 4, s_4_24, -1, 8, 0}, +/* 25 */ { 3, s_4_25, -1, 8, 0}, +/* 26 */ { 6, s_4_26, -1, 4, 0}, +/* 27 */ { 6, s_4_27, -1, 2, 0}, +/* 28 */ { 6, s_4_28, -1, 4, 0}, +/* 29 */ { 6, s_4_29, -1, 2, 0}, +/* 30 */ { 5, s_4_30, -1, 15, 0}, +/* 31 */ { 6, s_4_31, 30, 6, 0}, +/* 32 */ { 9, s_4_32, 31, 12, 0}, +/* 33 */ { 4, s_4_33, -1, 7, 0}, +/* 34 */ { 4, s_4_34, -1, 15, 0}, +/* 35 */ { 5, s_4_35, 34, 6, 0}, +/* 36 */ { 8, s_4_36, 35, 12, 0}, +/* 37 */ { 6, s_4_37, 34, 13, 0}, +/* 38 */ { 6, s_4_38, 34, 14, 0}, +/* 39 */ { 3, s_4_39, -1, 10, 0}, +/* 40 */ { 4, s_4_40, 39, 9, 0}, +/* 41 */ { 3, s_4_41, -1, 1, 0}, +/* 42 */ { 3, s_4_42, -1, 7, 0} +}; + +static const symbol s_5_0[3] = { 'i', 'r', 'a' }; +static const symbol s_5_1[2] = { 'i', 'e' }; +static const symbol s_5_2[4] = { 'i', 's', 's', 'e' }; +static const symbol s_5_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' }; +static const symbol s_5_4[1] = { 'i' }; +static const symbol s_5_5[4] = { 'i', 'r', 'a', 'i' }; +static const symbol s_5_6[2] = { 'i', 'r' }; +static const symbol s_5_7[4] = { 'i', 'r', 'a', 's' }; +static const symbol s_5_8[3] = { 'i', 'e', 's' }; +static const symbol s_5_9[4] = { 0xEE, 'm', 'e', 's' }; +static const symbol s_5_10[5] = { 'i', 's', 's', 'e', 's' }; +static const symbol s_5_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' }; +static const symbol s_5_12[4] = { 0xEE, 't', 'e', 's' }; +static const symbol s_5_13[2] = { 'i', 's' }; +static const symbol s_5_14[5] = { 'i', 'r', 'a', 'i', 's' }; +static const symbol s_5_15[6] = { 'i', 's', 's', 'a', 'i', 's' }; +static const symbol s_5_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' }; +static const symbol s_5_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' }; +static const symbol s_5_18[5] = { 'i', 'r', 'o', 'n', 's' }; +static const symbol s_5_19[6] = { 'i', 's', 's', 'o', 'n', 's' }; +static const symbol s_5_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' }; +static const symbol s_5_21[2] = { 'i', 't' }; +static const symbol s_5_22[5] = { 'i', 'r', 'a', 'i', 't' }; +static const symbol s_5_23[6] = { 'i', 's', 's', 'a', 'i', 't' }; +static const symbol s_5_24[6] = { 'i', 's', 's', 'a', 'n', 't' }; +static const symbol s_5_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' }; +static const symbol s_5_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' }; +static const symbol s_5_27[5] = { 'i', 'r', 'e', 'n', 't' }; +static const symbol s_5_28[6] = { 'i', 's', 's', 'e', 'n', 't' }; +static const symbol s_5_29[5] = { 'i', 'r', 'o', 'n', 't' }; +static const symbol s_5_30[2] = { 0xEE, 't' }; +static const symbol s_5_31[5] = { 'i', 'r', 'i', 'e', 'z' }; +static const symbol s_5_32[6] = { 'i', 's', 's', 'i', 'e', 'z' }; +static const symbol s_5_33[4] = { 'i', 'r', 'e', 'z' }; +static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' }; + +static const struct among a_5[35] = +{ +/* 0 */ { 3, s_5_0, -1, 1, 0}, +/* 1 */ { 2, s_5_1, -1, 1, 0}, +/* 2 */ { 4, s_5_2, -1, 1, 0}, +/* 3 */ { 7, s_5_3, -1, 1, 0}, +/* 4 */ { 1, s_5_4, -1, 1, 0}, +/* 5 */ { 4, s_5_5, 4, 1, 0}, +/* 6 */ { 2, s_5_6, -1, 1, 0}, +/* 7 */ { 4, s_5_7, -1, 1, 0}, +/* 8 */ { 3, s_5_8, -1, 1, 0}, +/* 9 */ { 4, s_5_9, -1, 1, 0}, +/* 10 */ { 5, s_5_10, -1, 1, 0}, +/* 11 */ { 8, s_5_11, -1, 1, 0}, +/* 12 */ { 4, s_5_12, -1, 1, 0}, +/* 13 */ { 2, s_5_13, -1, 1, 0}, +/* 14 */ { 5, s_5_14, 13, 1, 0}, +/* 15 */ { 6, s_5_15, 13, 1, 0}, +/* 16 */ { 6, s_5_16, -1, 1, 0}, +/* 17 */ { 7, s_5_17, -1, 1, 0}, +/* 18 */ { 5, s_5_18, -1, 1, 0}, +/* 19 */ { 6, s_5_19, -1, 1, 0}, +/* 20 */ { 7, s_5_20, -1, 1, 0}, +/* 21 */ { 2, s_5_21, -1, 1, 0}, +/* 22 */ { 5, s_5_22, 21, 1, 0}, +/* 23 */ { 6, s_5_23, 21, 1, 0}, +/* 24 */ { 6, s_5_24, -1, 1, 0}, +/* 25 */ { 7, s_5_25, -1, 1, 0}, +/* 26 */ { 8, s_5_26, -1, 1, 0}, +/* 27 */ { 5, s_5_27, -1, 1, 0}, +/* 28 */ { 6, s_5_28, -1, 1, 0}, +/* 29 */ { 5, s_5_29, -1, 1, 0}, +/* 30 */ { 2, s_5_30, -1, 1, 0}, +/* 31 */ { 5, s_5_31, -1, 1, 0}, +/* 32 */ { 6, s_5_32, -1, 1, 0}, +/* 33 */ { 4, s_5_33, -1, 1, 0}, +/* 34 */ { 5, s_5_34, -1, 1, 0} +}; + +static const symbol s_6_0[1] = { 'a' }; +static const symbol s_6_1[3] = { 'e', 'r', 'a' }; +static const symbol s_6_2[4] = { 'a', 's', 's', 'e' }; +static const symbol s_6_3[4] = { 'a', 'n', 't', 'e' }; +static const symbol s_6_4[2] = { 0xE9, 'e' }; +static const symbol s_6_5[2] = { 'a', 'i' }; +static const symbol s_6_6[4] = { 'e', 'r', 'a', 'i' }; +static const symbol s_6_7[2] = { 'e', 'r' }; +static const symbol s_6_8[2] = { 'a', 's' }; +static const symbol s_6_9[4] = { 'e', 'r', 'a', 's' }; +static const symbol s_6_10[4] = { 0xE2, 'm', 'e', 's' }; +static const symbol s_6_11[5] = { 'a', 's', 's', 'e', 's' }; +static const symbol s_6_12[5] = { 'a', 'n', 't', 'e', 's' }; +static const symbol s_6_13[4] = { 0xE2, 't', 'e', 's' }; +static const symbol s_6_14[3] = { 0xE9, 'e', 's' }; +static const symbol s_6_15[3] = { 'a', 'i', 's' }; +static const symbol s_6_16[5] = { 'e', 'r', 'a', 'i', 's' }; +static const symbol s_6_17[4] = { 'i', 'o', 'n', 's' }; +static const symbol s_6_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' }; +static const symbol s_6_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' }; +static const symbol s_6_20[5] = { 'e', 'r', 'o', 'n', 's' }; +static const symbol s_6_21[4] = { 'a', 'n', 't', 's' }; +static const symbol s_6_22[2] = { 0xE9, 's' }; +static const symbol s_6_23[3] = { 'a', 'i', 't' }; +static const symbol s_6_24[5] = { 'e', 'r', 'a', 'i', 't' }; +static const symbol s_6_25[3] = { 'a', 'n', 't' }; +static const symbol s_6_26[5] = { 'a', 'I', 'e', 'n', 't' }; +static const symbol s_6_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' }; +static const symbol s_6_28[5] = { 0xE8, 'r', 'e', 'n', 't' }; +static const symbol s_6_29[6] = { 'a', 's', 's', 'e', 'n', 't' }; +static const symbol s_6_30[5] = { 'e', 'r', 'o', 'n', 't' }; +static const symbol s_6_31[2] = { 0xE2, 't' }; +static const symbol s_6_32[2] = { 'e', 'z' }; +static const symbol s_6_33[3] = { 'i', 'e', 'z' }; +static const symbol s_6_34[5] = { 'e', 'r', 'i', 'e', 'z' }; +static const symbol s_6_35[6] = { 'a', 's', 's', 'i', 'e', 'z' }; +static const symbol s_6_36[4] = { 'e', 'r', 'e', 'z' }; +static const symbol s_6_37[1] = { 0xE9 }; + +static const struct among a_6[38] = +{ +/* 0 */ { 1, s_6_0, -1, 3, 0}, +/* 1 */ { 3, s_6_1, 0, 2, 0}, +/* 2 */ { 4, s_6_2, -1, 3, 0}, +/* 3 */ { 4, s_6_3, -1, 3, 0}, +/* 4 */ { 2, s_6_4, -1, 2, 0}, +/* 5 */ { 2, s_6_5, -1, 3, 0}, +/* 6 */ { 4, s_6_6, 5, 2, 0}, +/* 7 */ { 2, s_6_7, -1, 2, 0}, +/* 8 */ { 2, s_6_8, -1, 3, 0}, +/* 9 */ { 4, s_6_9, 8, 2, 0}, +/* 10 */ { 4, s_6_10, -1, 3, 0}, +/* 11 */ { 5, s_6_11, -1, 3, 0}, +/* 12 */ { 5, s_6_12, -1, 3, 0}, +/* 13 */ { 4, s_6_13, -1, 3, 0}, +/* 14 */ { 3, s_6_14, -1, 2, 0}, +/* 15 */ { 3, s_6_15, -1, 3, 0}, +/* 16 */ { 5, s_6_16, 15, 2, 0}, +/* 17 */ { 4, s_6_17, -1, 1, 0}, +/* 18 */ { 6, s_6_18, 17, 2, 0}, +/* 19 */ { 7, s_6_19, 17, 3, 0}, +/* 20 */ { 5, s_6_20, -1, 2, 0}, +/* 21 */ { 4, s_6_21, -1, 3, 0}, +/* 22 */ { 2, s_6_22, -1, 2, 0}, +/* 23 */ { 3, s_6_23, -1, 3, 0}, +/* 24 */ { 5, s_6_24, 23, 2, 0}, +/* 25 */ { 3, s_6_25, -1, 3, 0}, +/* 26 */ { 5, s_6_26, -1, 3, 0}, +/* 27 */ { 7, s_6_27, 26, 2, 0}, +/* 28 */ { 5, s_6_28, -1, 2, 0}, +/* 29 */ { 6, s_6_29, -1, 3, 0}, +/* 30 */ { 5, s_6_30, -1, 2, 0}, +/* 31 */ { 2, s_6_31, -1, 3, 0}, +/* 32 */ { 2, s_6_32, -1, 2, 0}, +/* 33 */ { 3, s_6_33, 32, 2, 0}, +/* 34 */ { 5, s_6_34, 33, 2, 0}, +/* 35 */ { 6, s_6_35, 33, 3, 0}, +/* 36 */ { 4, s_6_36, 32, 2, 0}, +/* 37 */ { 1, s_6_37, -1, 2, 0} +}; + +static const symbol s_7_0[1] = { 'e' }; +static const symbol s_7_1[4] = { 'I', 0xE8, 'r', 'e' }; +static const symbol s_7_2[4] = { 'i', 0xE8, 'r', 'e' }; +static const symbol s_7_3[3] = { 'i', 'o', 'n' }; +static const symbol s_7_4[3] = { 'I', 'e', 'r' }; +static const symbol s_7_5[3] = { 'i', 'e', 'r' }; + +static const struct among a_7[6] = +{ +/* 0 */ { 1, s_7_0, -1, 3, 0}, +/* 1 */ { 4, s_7_1, 0, 2, 0}, +/* 2 */ { 4, s_7_2, 0, 2, 0}, +/* 3 */ { 3, s_7_3, -1, 1, 0}, +/* 4 */ { 3, s_7_4, -1, 2, 0}, +/* 5 */ { 3, s_7_5, -1, 2, 0} +}; + +static const symbol s_8_0[3] = { 'e', 'l', 'l' }; +static const symbol s_8_1[4] = { 'e', 'i', 'l', 'l' }; +static const symbol s_8_2[3] = { 'e', 'n', 'n' }; +static const symbol s_8_3[3] = { 'o', 'n', 'n' }; +static const symbol s_8_4[3] = { 'e', 't', 't' }; + +static const struct among a_8[5] = +{ +/* 0 */ { 3, s_8_0, -1, -1, 0}, +/* 1 */ { 4, s_8_1, -1, -1, 0}, +/* 2 */ { 3, s_8_2, -1, -1, 0}, +/* 3 */ { 3, s_8_3, -1, -1, 0}, +/* 4 */ { 3, s_8_4, -1, -1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 }; + +static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + +static const symbol s_0[] = { 'U' }; +static const symbol s_1[] = { 'I' }; +static const symbol s_2[] = { 'Y' }; +static const symbol s_3[] = { 'H', 'e' }; +static const symbol s_4[] = { 'H', 'i' }; +static const symbol s_5[] = { 'Y' }; +static const symbol s_6[] = { 'U' }; +static const symbol s_7[] = { 'i' }; +static const symbol s_8[] = { 'u' }; +static const symbol s_9[] = { 'y' }; +static const symbol s_10[] = { 0xEB }; +static const symbol s_11[] = { 0xEF }; +static const symbol s_12[] = { 'i', 'c' }; +static const symbol s_13[] = { 'i', 'q', 'U' }; +static const symbol s_14[] = { 'l', 'o', 'g' }; +static const symbol s_15[] = { 'u' }; +static const symbol s_16[] = { 'e', 'n', 't' }; +static const symbol s_17[] = { 'a', 't' }; +static const symbol s_18[] = { 'e', 'u', 'x' }; +static const symbol s_19[] = { 'i' }; +static const symbol s_20[] = { 'a', 'b', 'l' }; +static const symbol s_21[] = { 'i', 'q', 'U' }; +static const symbol s_22[] = { 'a', 't' }; +static const symbol s_23[] = { 'i', 'c' }; +static const symbol s_24[] = { 'i', 'q', 'U' }; +static const symbol s_25[] = { 'e', 'a', 'u' }; +static const symbol s_26[] = { 'a', 'l' }; +static const symbol s_27[] = { 'e', 'u', 'x' }; +static const symbol s_28[] = { 'a', 'n', 't' }; +static const symbol s_29[] = { 'e', 'n', 't' }; +static const symbol s_30[] = { 'H', 'i' }; +static const symbol s_31[] = { 'i' }; +static const symbol s_32[] = { 'e' }; +static const symbol s_33[] = { 'i' }; +static const symbol s_34[] = { 'c' }; + +static int r_prelude(struct SN_env * z) { /* forwardmode */ + while(1) { /* repeat, line 38 */ + int c1 = z->c; + while(1) { /* goto, line 38 */ + int c2 = z->c; + { int c3 = z->c; /* or, line 44 */ + if (in_grouping(z, g_v, 97, 251, 0)) goto lab3; /* grouping v, line 40 */ + z->bra = z->c; /* [, line 40 */ + { int c4 = z->c; /* or, line 40 */ + if (z->c == z->l || z->p[z->c] != 'u') goto lab5; /* literal, line 40 */ + z->c++; + z->ket = z->c; /* ], line 40 */ + if (in_grouping(z, g_v, 97, 251, 0)) goto lab5; /* grouping v, line 40 */ + { int ret = slice_from_s(z, 1, s_0); /* <-, line 40 */ + if (ret < 0) return ret; + } + goto lab4; + lab5: + z->c = c4; + if (z->c == z->l || z->p[z->c] != 'i') goto lab6; /* literal, line 41 */ + z->c++; + z->ket = z->c; /* ], line 41 */ + if (in_grouping(z, g_v, 97, 251, 0)) goto lab6; /* grouping v, line 41 */ + { int ret = slice_from_s(z, 1, s_1); /* <-, line 41 */ + if (ret < 0) return ret; + } + goto lab4; + lab6: + z->c = c4; + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 42 */ + z->c++; + z->ket = z->c; /* ], line 42 */ + { int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */ + if (ret < 0) return ret; + } + } + lab4: + goto lab2; + lab3: + z->c = c3; + z->bra = z->c; /* [, line 45 */ + if (z->c == z->l || z->p[z->c] != 0xEB) goto lab7; /* literal, line 45 */ + z->c++; + z->ket = z->c; /* ], line 45 */ + { int ret = slice_from_s(z, 2, s_3); /* <-, line 45 */ + if (ret < 0) return ret; + } + goto lab2; + lab7: + z->c = c3; + z->bra = z->c; /* [, line 47 */ + if (z->c == z->l || z->p[z->c] != 0xEF) goto lab8; /* literal, line 47 */ + z->c++; + z->ket = z->c; /* ], line 47 */ + { int ret = slice_from_s(z, 2, s_4); /* <-, line 47 */ + if (ret < 0) return ret; + } + goto lab2; + lab8: + z->c = c3; + z->bra = z->c; /* [, line 49 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab9; /* literal, line 49 */ + z->c++; + z->ket = z->c; /* ], line 49 */ + if (in_grouping(z, g_v, 97, 251, 0)) goto lab9; /* grouping v, line 49 */ + { int ret = slice_from_s(z, 1, s_5); /* <-, line 49 */ + if (ret < 0) return ret; + } + goto lab2; + lab9: + z->c = c3; + if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 51 */ + z->c++; + z->bra = z->c; /* [, line 51 */ + if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 51 */ + z->c++; + z->ket = z->c; /* ], line 51 */ + { int ret = slice_from_s(z, 1, s_6); /* <-, line 51 */ + if (ret < 0) return ret; + } + } + lab2: + z->c = c2; + break; + lab1: + z->c = c2; + if (z->c >= z->l) goto lab0; + z->c++; /* goto, line 38 */ + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $pV = <integer expression>, line 56 */ + z->I[1] = z->l; /* $p1 = <integer expression>, line 57 */ + z->I[2] = z->l; /* $p2 = <integer expression>, line 58 */ + { int c1 = z->c; /* do, line 60 */ + { int c2 = z->c; /* or, line 62 */ + if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */ + if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */ + if (z->c >= z->l) goto lab2; + z->c++; /* next, line 61 */ + goto lab1; + lab2: + z->c = c2; + if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3; /* among, line 63 */ + if (!(find_among(z, a_0, 3))) goto lab3; + goto lab1; + lab3: + z->c = c2; + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 70 */ + { /* gopast */ /* grouping v, line 70 */ + int ret = out_grouping(z, g_v, 97, 251, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + } + lab1: + z->I[0] = z->c; /* setmark pV, line 71 */ + lab0: + z->c = c1; + } + { int c3 = z->c; /* do, line 73 */ + { /* gopast */ /* grouping v, line 74 */ + int ret = out_grouping(z, g_v, 97, 251, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + { /* gopast */ /* non v, line 74 */ + int ret = in_grouping(z, g_v, 97, 251, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + z->I[1] = z->c; /* setmark p1, line 74 */ + { /* gopast */ /* grouping v, line 75 */ + int ret = out_grouping(z, g_v, 97, 251, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + { /* gopast */ /* non v, line 75 */ + int ret = in_grouping(z, g_v, 97, 251, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + z->I[2] = z->c; /* setmark p2, line 75 */ + lab4: + z->c = c3; + } + return 1; +} + +static int r_postlude(struct SN_env * z) { /* forwardmode */ + int among_var; + while(1) { /* repeat, line 79 */ + int c1 = z->c; + z->bra = z->c; /* [, line 81 */ + if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else /* substring, line 81 */ + among_var = find_among(z, a_1, 7); + if (!(among_var)) goto lab0; + z->ket = z->c; /* ], line 81 */ + switch (among_var) { /* among, line 81 */ + case 1: + { int ret = slice_from_s(z, 1, s_7); /* <-, line 82 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_8); /* <-, line 83 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_9); /* <-, line 84 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 1, s_10); /* <-, line 85 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 1, s_11); /* <-, line 86 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_del(z); /* delete, line 87 */ + if (ret < 0) return ret; + } + break; + case 7: + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 88 */ + break; + } + continue; + lab0: + z->c = c1; + 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 94 */ + return 1; +} + +static int r_R1(struct SN_env * z) { /* backwardmode */ + if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 95 */ + return 1; +} + +static int r_R2(struct SN_env * z) { /* backwardmode */ + if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 96 */ + return 1; +} + +static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 99 */ + among_var = find_among_b(z, a_4, 43); /* substring, line 99 */ + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 99 */ + switch (among_var) { /* among, line 99 */ + case 1: + { int ret = r_R2(z); /* call R2, line 103 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 103 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = r_R2(z); /* call R2, line 106 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 106 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* try, line 107 */ + z->ket = z->c; /* [, line 107 */ + if (!(eq_s_b(z, 2, s_12))) { z->c = z->l - m1; goto lab0; } /* literal, line 107 */ + z->bra = z->c; /* ], line 107 */ + { int m2 = z->l - z->c; (void)m2; /* or, line 107 */ + { int ret = r_R2(z); /* call R2, line 107 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 107 */ + if (ret < 0) return ret; + } + goto lab1; + lab2: + z->c = z->l - m2; + { int ret = slice_from_s(z, 3, s_13); /* <-, line 107 */ + if (ret < 0) return ret; + } + } + lab1: + lab0: + ; + } + break; + case 3: + { int ret = r_R2(z); /* call R2, line 111 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_14); /* <-, line 111 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = r_R2(z); /* call R2, line 114 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 1, s_15); /* <-, line 114 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = r_R2(z); /* call R2, line 117 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_16); /* <-, line 117 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = r_RV(z); /* call RV, line 121 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 121 */ + if (ret < 0) return ret; + } + { int m3 = z->l - z->c; (void)m3; /* try, line 122 */ + z->ket = z->c; /* [, line 123 */ + among_var = find_among_b(z, a_2, 6); /* substring, line 123 */ + if (!(among_var)) { z->c = z->l - m3; goto lab3; } + z->bra = z->c; /* ], line 123 */ + switch (among_var) { /* among, line 123 */ + case 1: + { int ret = r_R2(z); /* call R2, line 124 */ + if (ret == 0) { z->c = z->l - m3; goto lab3; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 124 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 124 */ + if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m3; goto lab3; } /* literal, line 124 */ + z->bra = z->c; /* ], line 124 */ + { int ret = r_R2(z); /* call R2, line 124 */ + if (ret == 0) { z->c = z->l - m3; goto lab3; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 124 */ + if (ret < 0) return ret; + } + break; + case 2: + { int m4 = z->l - z->c; (void)m4; /* or, line 125 */ + { int ret = r_R2(z); /* call R2, line 125 */ + if (ret == 0) goto lab5; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 125 */ + if (ret < 0) return ret; + } + goto lab4; + lab5: + z->c = z->l - m4; + { int ret = r_R1(z); /* call R1, line 125 */ + if (ret == 0) { z->c = z->l - m3; goto lab3; } + if (ret < 0) return ret; + } + { int ret = slice_from_s(z, 3, s_18); /* <-, line 125 */ + if (ret < 0) return ret; + } + } + lab4: + break; + case 3: + { int ret = r_R2(z); /* call R2, line 127 */ + if (ret == 0) { z->c = z->l - m3; goto lab3; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 127 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = r_RV(z); /* call RV, line 129 */ + if (ret == 0) { z->c = z->l - m3; goto lab3; } + if (ret < 0) return ret; + } + { int ret = slice_from_s(z, 1, s_19); /* <-, line 129 */ + if (ret < 0) return ret; + } + break; + } + lab3: + ; + } + break; + case 7: + { 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; + } + { int m5 = z->l - z->c; (void)m5; /* try, line 137 */ + z->ket = z->c; /* [, line 138 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; } /* substring, line 138 */ + among_var = find_among_b(z, a_3, 3); + if (!(among_var)) { z->c = z->l - m5; goto lab6; } + z->bra = z->c; /* ], line 138 */ + switch (among_var) { /* among, line 138 */ + case 1: + { int m6 = z->l - z->c; (void)m6; /* or, line 139 */ + { int ret = r_R2(z); /* call R2, line 139 */ + if (ret == 0) goto lab8; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 139 */ + if (ret < 0) return ret; + } + goto lab7; + lab8: + z->c = z->l - m6; + { int ret = slice_from_s(z, 3, s_20); /* <-, line 139 */ + if (ret < 0) return ret; + } + } + lab7: + break; + case 2: + { int m7 = z->l - z->c; (void)m7; /* or, line 140 */ + { int ret = r_R2(z); /* call R2, line 140 */ + if (ret == 0) goto lab10; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 140 */ + if (ret < 0) return ret; + } + goto lab9; + lab10: + z->c = z->l - m7; + { int ret = slice_from_s(z, 3, s_21); /* <-, line 140 */ + if (ret < 0) return ret; + } + } + lab9: + break; + case 3: + { int ret = r_R2(z); /* call R2, line 141 */ + if (ret == 0) { z->c = z->l - m5; goto lab6; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 141 */ + if (ret < 0) return ret; + } + break; + } + lab6: + ; + } + break; + case 8: + { int ret = r_R2(z); /* call R2, line 148 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 148 */ + if (ret < 0) return ret; + } + { int m8 = z->l - z->c; (void)m8; /* try, line 149 */ + z->ket = z->c; /* [, line 149 */ + if (!(eq_s_b(z, 2, s_22))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */ + z->bra = z->c; /* ], line 149 */ + { int ret = r_R2(z); /* call R2, line 149 */ + if (ret == 0) { z->c = z->l - m8; goto lab11; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 149 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 149 */ + if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */ + z->bra = z->c; /* ], line 149 */ + { int m9 = z->l - z->c; (void)m9; /* or, line 149 */ + { int ret = r_R2(z); /* call R2, line 149 */ + if (ret == 0) goto lab13; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 149 */ + if (ret < 0) return ret; + } + goto lab12; + lab13: + z->c = z->l - m9; + { int ret = slice_from_s(z, 3, s_24); /* <-, line 149 */ + if (ret < 0) return ret; + } + } + lab12: + lab11: + ; + } + break; + case 9: + { int ret = slice_from_s(z, 3, s_25); /* <-, line 151 */ + if (ret < 0) return ret; + } + break; + case 10: + { int ret = r_R1(z); /* call R1, line 152 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 2, s_26); /* <-, line 152 */ + if (ret < 0) return ret; + } + break; + case 11: + { int m10 = z->l - z->c; (void)m10; /* or, line 154 */ + { int ret = r_R2(z); /* call R2, line 154 */ + if (ret == 0) goto lab15; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 154 */ + if (ret < 0) return ret; + } + goto lab14; + lab15: + z->c = z->l - m10; + { int ret = r_R1(z); /* call R1, line 154 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_27); /* <-, line 154 */ + if (ret < 0) return ret; + } + } + lab14: + break; + case 12: + { int ret = r_R1(z); /* call R1, line 157 */ + if (ret <= 0) return ret; + } + if (out_grouping_b(z, g_v, 97, 251, 0)) return 0; /* non v, line 157 */ + { int ret = slice_del(z); /* delete, line 157 */ + if (ret < 0) return ret; + } + break; + case 13: + { int ret = r_RV(z); /* call RV, line 162 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_28); /* <-, line 162 */ + if (ret < 0) return ret; + } + return 0; /* fail, line 162 */ + break; + case 14: + { int ret = r_RV(z); /* call RV, line 163 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_29); /* <-, line 163 */ + if (ret < 0) return ret; + } + return 0; /* fail, line 163 */ + break; + case 15: + { int m_test11 = z->l - z->c; /* test, line 165 */ + if (in_grouping_b(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 165 */ + { int ret = r_RV(z); /* call RV, line 165 */ + if (ret <= 0) return ret; + } + z->c = z->l - m_test11; + } + { int ret = slice_del(z); /* delete, line 165 */ + if (ret < 0) return ret; + } + return 0; /* fail, line 165 */ + break; + } + return 1; +} + +static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 170 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 171 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 171 */ + if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 171 */ + { int m2 = z->l - z->c; (void)m2; /* not, line 177 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0; /* literal, line 177 */ + z->c--; + { z->lb = mlimit1; return 0; } + lab0: + z->c = z->l - m2; + } + if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 177 */ + { int ret = slice_del(z); /* delete, line 177 */ + if (ret < 0) return ret; + } + z->lb = mlimit1; + } + return 1; +} + +static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 181 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 182 */ + among_var = find_among_b(z, a_6, 38); /* substring, line 182 */ + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 182 */ + switch (among_var) { /* among, line 182 */ + case 1: + { int ret = r_R2(z); /* call R2, line 184 */ + if (ret == 0) { z->lb = mlimit1; return 0; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 184 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 192 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 197 */ + if (ret < 0) return ret; + } + { int m2 = z->l - z->c; (void)m2; /* try, line 198 */ + z->ket = z->c; /* [, line 198 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 198 */ + z->c--; + z->bra = z->c; /* ], line 198 */ + { int ret = slice_del(z); /* delete, line 198 */ + if (ret < 0) return ret; + } + lab0: + ; + } + break; + } + z->lb = mlimit1; + } + return 1; +} + +static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + { int m1 = z->l - z->c; (void)m1; /* try, line 206 */ + z->ket = z->c; /* [, line 206 */ + if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 206 */ + z->c--; + z->bra = z->c; /* ], line 206 */ + { int m_test2 = z->l - z->c; /* test, line 206 */ + { int m3 = z->l - z->c; (void)m3; /* or, line 206 */ + if (!(eq_s_b(z, 2, s_30))) goto lab2; /* literal, line 206 */ + goto lab1; + lab2: + z->c = z->l - m3; + if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 206 */ + } + lab1: + z->c = z->l - m_test2; + } + { int ret = slice_del(z); /* delete, line 206 */ + if (ret < 0) return ret; + } + lab0: + ; + } + + { int mlimit4; /* setlimit, line 207 */ + if (z->c < z->I[0]) return 0; + mlimit4 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 208 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; } /* substring, line 208 */ + among_var = find_among_b(z, a_7, 6); + if (!(among_var)) { z->lb = mlimit4; return 0; } + z->bra = z->c; /* ], line 208 */ + switch (among_var) { /* among, line 208 */ + case 1: + { int ret = r_R2(z); /* call R2, line 209 */ + if (ret == 0) { z->lb = mlimit4; return 0; } + if (ret < 0) return ret; + } + { int m5 = z->l - z->c; (void)m5; /* or, line 209 */ + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4; /* literal, line 209 */ + z->c--; + goto lab3; + lab4: + z->c = z->l - m5; + if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; } /* literal, line 209 */ + z->c--; + } + lab3: + { int ret = slice_del(z); /* delete, line 209 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_31); /* <-, line 211 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 212 */ + if (ret < 0) return ret; + } + break; + } + z->lb = mlimit4; + } + return 1; +} + +static int r_un_double(struct SN_env * z) { /* backwardmode */ + { int m_test1 = z->l - z->c; /* test, line 218 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 218 */ + if (!(find_among_b(z, a_8, 5))) return 0; + z->c = z->l - m_test1; + } + z->ket = z->c; /* [, line 218 */ + if (z->c <= z->lb) return 0; + z->c--; /* next, line 218 */ + z->bra = z->c; /* ], line 218 */ + { int ret = slice_del(z); /* delete, line 218 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_un_accent(struct SN_env * z) { /* backwardmode */ + { int i = 1; + while(1) { /* atleast, line 222 */ + if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 222 */ + i--; + continue; + lab0: + break; + } + if (i > 0) return 0; + } + z->ket = z->c; /* [, line 223 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 223 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xE9) goto lab2; /* literal, line 223 */ + z->c--; + goto lab1; + lab2: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 0xE8) return 0; /* literal, line 223 */ + z->c--; + } +lab1: + z->bra = z->c; /* ], line 223 */ + { int ret = slice_from_s(z, 1, s_32); /* <-, line 223 */ + if (ret < 0) return ret; + } + return 1; +} + +extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 229 */ + { int ret = r_prelude(z); /* call prelude, line 229 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + /* do, line 230 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 230 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } +lab1: + z->lb = z->c; z->c = z->l; /* backwards, line 231 */ + + { int m2 = z->l - z->c; (void)m2; /* do, line 233 */ + { int m3 = z->l - z->c; (void)m3; /* or, line 243 */ + { int m4 = z->l - z->c; (void)m4; /* and, line 239 */ + { int m5 = z->l - z->c; (void)m5; /* or, line 235 */ + { int ret = r_standard_suffix(z); /* call standard_suffix, line 235 */ + if (ret == 0) goto lab6; + if (ret < 0) return ret; + } + goto lab5; + lab6: + z->c = z->l - m5; + { int ret = r_i_verb_suffix(z); /* call i_verb_suffix, line 236 */ + if (ret == 0) goto lab7; + if (ret < 0) return ret; + } + goto lab5; + lab7: + z->c = z->l - m5; + { int ret = r_verb_suffix(z); /* call verb_suffix, line 237 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + } + lab5: + z->c = z->l - m4; + { int m6 = z->l - z->c; (void)m6; /* try, line 240 */ + z->ket = z->c; /* [, line 240 */ + { int m7 = z->l - z->c; (void)m7; /* or, line 240 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab10; /* literal, line 240 */ + z->c--; + z->bra = z->c; /* ], line 240 */ + { int ret = slice_from_s(z, 1, s_33); /* <-, line 240 */ + if (ret < 0) return ret; + } + goto lab9; + lab10: + z->c = z->l - m7; + if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab8; } /* literal, line 241 */ + z->c--; + z->bra = z->c; /* ], line 241 */ + { int ret = slice_from_s(z, 1, s_34); /* <-, line 241 */ + if (ret < 0) return ret; + } + } + lab9: + lab8: + ; + } + } + goto lab3; + lab4: + z->c = z->l - m3; + { int ret = r_residual_suffix(z); /* call residual_suffix, line 244 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + } + lab3: + lab2: + z->c = z->l - m2; + } + { int m8 = z->l - z->c; (void)m8; /* do, line 249 */ + { int ret = r_un_double(z); /* call un_double, line 249 */ + if (ret == 0) goto lab11; + if (ret < 0) return ret; + } + lab11: + z->c = z->l - m8; + } + { int m9 = z->l - z->c; (void)m9; /* do, line 250 */ + { int ret = r_un_accent(z); /* call un_accent, line 250 */ + if (ret == 0) goto lab12; + if (ret < 0) return ret; + } + lab12: + z->c = z->l - m9; + } + z->c = z->lb; + { int c10 = z->c; /* do, line 252 */ + { int ret = r_postlude(z); /* call postlude, line 252 */ + if (ret == 0) goto lab13; + if (ret < 0) return ret; + } + lab13: + z->c = c10; + } + return 1; +} + +extern struct SN_env * french_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } + +extern void french_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c new file mode 100644 index 0000000..ae334f8 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c @@ -0,0 +1,503 @@ +/* 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 german_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_standard_suffix(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * german_ISO_8859_1_create_env(void); +extern void german_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[1] = { 'U' }; +static const symbol s_0_2[1] = { 'Y' }; +static const symbol s_0_3[1] = { 0xE4 }; +static const symbol s_0_4[1] = { 0xF6 }; +static const symbol s_0_5[1] = { 0xFC }; + +static const struct among a_0[6] = +{ +/* 0 */ { 0, 0, -1, 5, 0}, +/* 1 */ { 1, s_0_1, 0, 2, 0}, +/* 2 */ { 1, s_0_2, 0, 1, 0}, +/* 3 */ { 1, s_0_3, 0, 3, 0}, +/* 4 */ { 1, s_0_4, 0, 4, 0}, +/* 5 */ { 1, s_0_5, 0, 2, 0} +}; + +static const symbol s_1_0[1] = { 'e' }; +static const symbol s_1_1[2] = { 'e', 'm' }; +static const symbol s_1_2[2] = { 'e', 'n' }; +static const symbol s_1_3[3] = { 'e', 'r', 'n' }; +static const symbol s_1_4[2] = { 'e', 'r' }; +static const symbol s_1_5[1] = { 's' }; +static const symbol s_1_6[2] = { 'e', 's' }; + +static const struct among a_1[7] = +{ +/* 0 */ { 1, s_1_0, -1, 2, 0}, +/* 1 */ { 2, s_1_1, -1, 1, 0}, +/* 2 */ { 2, s_1_2, -1, 2, 0}, +/* 3 */ { 3, s_1_3, -1, 1, 0}, +/* 4 */ { 2, s_1_4, -1, 1, 0}, +/* 5 */ { 1, s_1_5, -1, 3, 0}, +/* 6 */ { 2, s_1_6, 5, 2, 0} +}; + +static const symbol s_2_0[2] = { 'e', 'n' }; +static const symbol s_2_1[2] = { 'e', 'r' }; +static const symbol s_2_2[2] = { 's', 't' }; +static const symbol s_2_3[3] = { 'e', 's', 't' }; + +static const struct among a_2[4] = +{ +/* 0 */ { 2, s_2_0, -1, 1, 0}, +/* 1 */ { 2, s_2_1, -1, 1, 0}, +/* 2 */ { 2, s_2_2, -1, 2, 0}, +/* 3 */ { 3, s_2_3, 2, 1, 0} +}; + +static const symbol s_3_0[2] = { 'i', 'g' }; +static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' }; + +static const struct among a_3[2] = +{ +/* 0 */ { 2, s_3_0, -1, 1, 0}, +/* 1 */ { 4, s_3_1, -1, 1, 0} +}; + +static const symbol s_4_0[3] = { 'e', 'n', 'd' }; +static const symbol s_4_1[2] = { 'i', 'g' }; +static const symbol s_4_2[3] = { 'u', 'n', 'g' }; +static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' }; +static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' }; +static const symbol s_4_5[2] = { 'i', 'k' }; +static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' }; +static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' }; + +static const struct among a_4[8] = +{ +/* 0 */ { 3, s_4_0, -1, 1, 0}, +/* 1 */ { 2, s_4_1, -1, 2, 0}, +/* 2 */ { 3, s_4_2, -1, 1, 0}, +/* 3 */ { 4, s_4_3, -1, 3, 0}, +/* 4 */ { 4, s_4_4, -1, 2, 0}, +/* 5 */ { 2, s_4_5, -1, 2, 0}, +/* 6 */ { 4, s_4_6, -1, 3, 0}, +/* 7 */ { 4, s_4_7, -1, 4, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 }; + +static const unsigned char g_s_ending[] = { 117, 30, 5 }; + +static const unsigned char g_st_ending[] = { 117, 30, 4 }; + +static const symbol s_0[] = { 's', 's' }; +static const symbol s_1[] = { 'U' }; +static const symbol s_2[] = { 'Y' }; +static const symbol s_3[] = { 'y' }; +static const symbol s_4[] = { 'u' }; +static const symbol s_5[] = { 'a' }; +static const symbol s_6[] = { 'o' }; +static const symbol s_7[] = { 'n', 'i', 's' }; +static const symbol s_8[] = { 'i', 'g' }; +static const symbol s_9[] = { 'e', 'r' }; +static const symbol s_10[] = { 'e', 'n' }; + +static 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 = c3; + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 38 */ + } + lab1: + continue; + lab0: + z->c = c2; + break; + } + z->c = c_test1; + } + 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 = 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 = c5; + break; + lab4: + z->c = c5; + if (z->c >= z->l) goto lab3; + z->c++; /* goto, line 41 */ + } + continue; + lab3: + z->c = c4; + break; + } + return 1; +} + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 49 */ + z->I[1] = z->l; /* $p2 = <integer expression>, line 50 */ + { int c_test1 = z->c; /* test, line 52 */ + { int ret = z->c + 3; /* hop, line 52 */ + if (0 > ret || ret > z->l) return 0; + z->c = ret; + } + z->I[2] = z->c; /* setmark x, line 52 */ + z->c = c_test1; + } + { /* gopast */ /* grouping v, line 54 */ + int ret = out_grouping(z, g_v, 97, 252, 1); + if (ret < 0) return 0; + z->c += ret; + } + { /* gopast */ /* non v, line 54 */ + int ret = in_grouping(z, g_v, 97, 252, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 54 */ + /* try, line 55 */ + if (!(z->I[0] < z->I[2])) goto lab0; /* $(<integer expression> < <integer expression>), line 55 */ + z->I[0] = z->I[2]; /* $p1 = <integer expression>, line 55 */ +lab0: + { /* gopast */ /* grouping v, line 56 */ + int ret = out_grouping(z, g_v, 97, 252, 1); + if (ret < 0) return 0; + z->c += ret; + } + { /* gopast */ /* non v, line 56 */ + int ret = in_grouping(z, g_v, 97, 252, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[1] = z->c; /* setmark p2, line 56 */ + return 1; +} + +static int r_postlude(struct SN_env * z) { /* forwardmode */ + int among_var; + while(1) { /* repeat, line 60 */ + int c1 = z->c; + 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 62 */ + switch (among_var) { /* among, line 62 */ + case 1: + { 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_4); /* <-, line 64 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_6); /* <-, line 66 */ + if (ret < 0) return ret; + } + break; + case 5: + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 68 */ + break; + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +static int r_R1(struct SN_env * z) { /* backwardmode */ + if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 75 */ + return 1; +} + +static int r_R2(struct SN_env * z) { /* backwardmode */ + if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 76 */ + return 1; +} + +static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + { int m1 = z->l - z->c; (void)m1; /* do, line 79 */ + z->ket = z->c; /* [, line 80 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 80 */ + among_var = find_among_b(z, a_1, 7); + if (!(among_var)) goto lab0; + z->bra = z->c; /* ], line 80 */ + { int ret = r_R1(z); /* call R1, line 80 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + switch (among_var) { /* among, line 80 */ + case 1: + { int ret = slice_del(z); /* delete, line 82 */ + if (ret < 0) return ret; + } + break; + case 2: + { 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; + } + lab0: + z->c = z->l - m1; + } + { int m3 = z->l - z->c; (void)m3; /* do, line 93 */ + z->ket = z->c; /* [, line 94 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 94 */ + among_var = find_among_b(z, a_2, 4); + if (!(among_var)) goto lab2; + z->bra = z->c; /* ], line 94 */ + { int ret = r_R1(z); /* call R1, line 94 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + switch (among_var) { /* among, line 94 */ + case 1: + { int ret = slice_del(z); /* delete, line 96 */ + if (ret < 0) return ret; + } + break; + case 2: + if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab2; /* grouping st_ending, line 99 */ + { int ret = z->c - 3; /* hop, line 99 */ + if (z->lb > ret || ret > z->l) goto lab2; + z->c = ret; + } + { int ret = slice_del(z); /* delete, line 99 */ + if (ret < 0) return ret; + } + 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) { /* 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 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 136 */ + + /* 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 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 = c3; + } + return 1; +} + +extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } + +extern void german_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c new file mode 100644 index 0000000..4271170 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c @@ -0,0 +1,414 @@ +/* This file was generated automatically by the Snowball to ISO C compiler */ +/* http://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int indonesian_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_VOWEL(struct SN_env * z); +static int r_SUFFIX_I_OK(struct SN_env * z); +static int r_SUFFIX_AN_OK(struct SN_env * z); +static int r_SUFFIX_KAN_OK(struct SN_env * z); +static int r_KER(struct SN_env * z); +static int r_remove_suffix(struct SN_env * z); +static int r_remove_second_order_prefix(struct SN_env * z); +static int r_remove_first_order_prefix(struct SN_env * z); +static int r_remove_possessive_pronoun(struct SN_env * z); +static int r_remove_particle(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * indonesian_ISO_8859_1_create_env(void); +extern void indonesian_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[3] = { 'k', 'a', 'h' }; +static const symbol s_0_1[3] = { 'l', 'a', 'h' }; +static const symbol s_0_2[3] = { 'p', 'u', 'n' }; + +static const struct among a_0[3] = +{ +/* 0 */ { 3, s_0_0, -1, 1, 0}, +/* 1 */ { 3, s_0_1, -1, 1, 0}, +/* 2 */ { 3, s_0_2, -1, 1, 0} +}; + +static const symbol s_1_0[3] = { 'n', 'y', 'a' }; +static const symbol s_1_1[2] = { 'k', 'u' }; +static const symbol s_1_2[2] = { 'm', 'u' }; + +static const struct among a_1[3] = +{ +/* 0 */ { 3, s_1_0, -1, 1, 0}, +/* 1 */ { 2, s_1_1, -1, 1, 0}, +/* 2 */ { 2, s_1_2, -1, 1, 0} +}; + +static const symbol s_2_0[1] = { 'i' }; +static const symbol s_2_1[2] = { 'a', 'n' }; +static const symbol s_2_2[3] = { 'k', 'a', 'n' }; + +static const struct among a_2[3] = +{ +/* 0 */ { 1, s_2_0, -1, 1, r_SUFFIX_I_OK}, +/* 1 */ { 2, s_2_1, -1, 1, r_SUFFIX_AN_OK}, +/* 2 */ { 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK} +}; + +static const symbol s_3_0[2] = { 'd', 'i' }; +static const symbol s_3_1[2] = { 'k', 'e' }; +static const symbol s_3_2[2] = { 'm', 'e' }; +static const symbol s_3_3[3] = { 'm', 'e', 'm' }; +static const symbol s_3_4[3] = { 'm', 'e', 'n' }; +static const symbol s_3_5[4] = { 'm', 'e', 'n', 'g' }; +static const symbol s_3_6[4] = { 'm', 'e', 'n', 'y' }; +static const symbol s_3_7[3] = { 'p', 'e', 'm' }; +static const symbol s_3_8[3] = { 'p', 'e', 'n' }; +static const symbol s_3_9[4] = { 'p', 'e', 'n', 'g' }; +static const symbol s_3_10[4] = { 'p', 'e', 'n', 'y' }; +static const symbol s_3_11[3] = { 't', 'e', 'r' }; + +static const struct among a_3[12] = +{ +/* 0 */ { 2, s_3_0, -1, 1, 0}, +/* 1 */ { 2, s_3_1, -1, 2, 0}, +/* 2 */ { 2, s_3_2, -1, 1, 0}, +/* 3 */ { 3, s_3_3, 2, 5, 0}, +/* 4 */ { 3, s_3_4, 2, 1, 0}, +/* 5 */ { 4, s_3_5, 4, 1, 0}, +/* 6 */ { 4, s_3_6, 4, 3, r_VOWEL}, +/* 7 */ { 3, s_3_7, -1, 6, 0}, +/* 8 */ { 3, s_3_8, -1, 2, 0}, +/* 9 */ { 4, s_3_9, 8, 2, 0}, +/* 10 */ { 4, s_3_10, 8, 4, r_VOWEL}, +/* 11 */ { 3, s_3_11, -1, 1, 0} +}; + +static const symbol s_4_0[2] = { 'b', 'e' }; +static const symbol s_4_1[7] = { 'b', 'e', 'l', 'a', 'j', 'a', 'r' }; +static const symbol s_4_2[3] = { 'b', 'e', 'r' }; +static const symbol s_4_3[2] = { 'p', 'e' }; +static const symbol s_4_4[7] = { 'p', 'e', 'l', 'a', 'j', 'a', 'r' }; +static const symbol s_4_5[3] = { 'p', 'e', 'r' }; + +static const struct among a_4[6] = +{ +/* 0 */ { 2, s_4_0, -1, 3, r_KER}, +/* 1 */ { 7, s_4_1, 0, 4, 0}, +/* 2 */ { 3, s_4_2, 0, 3, 0}, +/* 3 */ { 2, s_4_3, -1, 1, 0}, +/* 4 */ { 7, s_4_4, 3, 2, 0}, +/* 5 */ { 3, s_4_5, 3, 1, 0} +}; + +static const unsigned char g_vowel[] = { 17, 65, 16 }; + +static const symbol s_0[] = { 'e', 'r' }; +static const symbol s_1[] = { 's' }; +static const symbol s_2[] = { 's' }; +static const symbol s_3[] = { 'p' }; +static const symbol s_4[] = { 'p' }; +static const symbol s_5[] = { 'a', 'j', 'a', 'r' }; +static const symbol s_6[] = { 'a', 'j', 'a', 'r' }; + +static int r_remove_particle(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 51 */ + if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0; /* substring, line 51 */ + if (!(find_among_b(z, a_0, 3))) return 0; + z->bra = z->c; /* ], line 51 */ + { int ret = slice_del(z); /* delete, line 52 */ + if (ret < 0) return ret; + } + z->I[0] -= 1; /* $measure -= <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); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c new file mode 100644 index 0000000..8ef9a90 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c @@ -0,0 +1,490 @@ +/* This file was generated automatically by the Snowball to ISO C compiler */ +/* http://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int irish_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_verb_sfx(struct SN_env * z); +static int r_deriv(struct SN_env * z); +static int r_noun_sfx(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_initial_morph(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * irish_ISO_8859_1_create_env(void); +extern void irish_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[2] = { 'b', '\'' }; +static const symbol s_0_1[2] = { 'b', 'h' }; +static const symbol s_0_2[3] = { 'b', 'h', 'f' }; +static const symbol s_0_3[2] = { 'b', 'p' }; +static const symbol s_0_4[2] = { 'c', 'h' }; +static const symbol s_0_5[2] = { 'd', '\'' }; +static const symbol s_0_6[4] = { 'd', '\'', 'f', 'h' }; +static const symbol s_0_7[2] = { 'd', 'h' }; +static const symbol s_0_8[2] = { 'd', 't' }; +static const symbol s_0_9[2] = { 'f', 'h' }; +static const symbol s_0_10[2] = { 'g', 'c' }; +static const symbol s_0_11[2] = { 'g', 'h' }; +static const symbol s_0_12[2] = { 'h', '-' }; +static const symbol s_0_13[2] = { 'm', '\'' }; +static const symbol s_0_14[2] = { 'm', 'b' }; +static const symbol s_0_15[2] = { 'm', 'h' }; +static const symbol s_0_16[2] = { 'n', '-' }; +static const symbol s_0_17[2] = { 'n', 'd' }; +static const symbol s_0_18[2] = { 'n', 'g' }; +static const symbol s_0_19[2] = { 'p', 'h' }; +static const symbol s_0_20[2] = { 's', 'h' }; +static const symbol s_0_21[2] = { 't', '-' }; +static const symbol s_0_22[2] = { 't', 'h' }; +static const symbol s_0_23[2] = { 't', 's' }; + +static const struct among a_0[24] = +{ +/* 0 */ { 2, s_0_0, -1, 1, 0}, +/* 1 */ { 2, s_0_1, -1, 4, 0}, +/* 2 */ { 3, s_0_2, 1, 2, 0}, +/* 3 */ { 2, s_0_3, -1, 8, 0}, +/* 4 */ { 2, s_0_4, -1, 5, 0}, +/* 5 */ { 2, s_0_5, -1, 1, 0}, +/* 6 */ { 4, s_0_6, 5, 2, 0}, +/* 7 */ { 2, s_0_7, -1, 6, 0}, +/* 8 */ { 2, s_0_8, -1, 9, 0}, +/* 9 */ { 2, s_0_9, -1, 2, 0}, +/* 10 */ { 2, s_0_10, -1, 5, 0}, +/* 11 */ { 2, s_0_11, -1, 7, 0}, +/* 12 */ { 2, s_0_12, -1, 1, 0}, +/* 13 */ { 2, s_0_13, -1, 1, 0}, +/* 14 */ { 2, s_0_14, -1, 4, 0}, +/* 15 */ { 2, s_0_15, -1, 10, 0}, +/* 16 */ { 2, s_0_16, -1, 1, 0}, +/* 17 */ { 2, s_0_17, -1, 6, 0}, +/* 18 */ { 2, s_0_18, -1, 7, 0}, +/* 19 */ { 2, s_0_19, -1, 8, 0}, +/* 20 */ { 2, s_0_20, -1, 3, 0}, +/* 21 */ { 2, s_0_21, -1, 1, 0}, +/* 22 */ { 2, s_0_22, -1, 9, 0}, +/* 23 */ { 2, s_0_23, -1, 3, 0} +}; + +static const symbol s_1_0[6] = { 0xED, 'o', 'c', 'h', 't', 'a' }; +static const symbol s_1_1[7] = { 'a', 0xED, 'o', 'c', 'h', 't', 'a' }; +static const symbol s_1_2[3] = { 'i', 'r', 'e' }; +static const symbol s_1_3[4] = { 'a', 'i', 'r', 'e' }; +static const symbol s_1_4[3] = { 'a', 'b', 'h' }; +static const symbol s_1_5[4] = { 'e', 'a', 'b', 'h' }; +static const symbol s_1_6[3] = { 'i', 'b', 'h' }; +static const symbol s_1_7[4] = { 'a', 'i', 'b', 'h' }; +static const symbol s_1_8[3] = { 'a', 'm', 'h' }; +static const symbol s_1_9[4] = { 'e', 'a', 'm', 'h' }; +static const symbol s_1_10[3] = { 'i', 'm', 'h' }; +static const symbol s_1_11[4] = { 'a', 'i', 'm', 'h' }; +static const symbol s_1_12[5] = { 0xED, 'o', 'c', 'h', 't' }; +static const symbol s_1_13[6] = { 'a', 0xED, 'o', 'c', 'h', 't' }; +static const symbol s_1_14[3] = { 'i', 'r', 0xED }; +static const symbol s_1_15[4] = { 'a', 'i', 'r', 0xED }; + +static const struct among a_1[16] = +{ +/* 0 */ { 6, s_1_0, -1, 1, 0}, +/* 1 */ { 7, s_1_1, 0, 1, 0}, +/* 2 */ { 3, s_1_2, -1, 2, 0}, +/* 3 */ { 4, s_1_3, 2, 2, 0}, +/* 4 */ { 3, s_1_4, -1, 1, 0}, +/* 5 */ { 4, s_1_5, 4, 1, 0}, +/* 6 */ { 3, s_1_6, -1, 1, 0}, +/* 7 */ { 4, s_1_7, 6, 1, 0}, +/* 8 */ { 3, s_1_8, -1, 1, 0}, +/* 9 */ { 4, s_1_9, 8, 1, 0}, +/* 10 */ { 3, s_1_10, -1, 1, 0}, +/* 11 */ { 4, s_1_11, 10, 1, 0}, +/* 12 */ { 5, s_1_12, -1, 1, 0}, +/* 13 */ { 6, s_1_13, 12, 1, 0}, +/* 14 */ { 3, s_1_14, -1, 2, 0}, +/* 15 */ { 4, s_1_15, 14, 2, 0} +}; + +static const symbol s_2_0[8] = { 0xF3, 'i', 'd', 'e', 'a', 'c', 'h', 'a' }; +static const symbol s_2_1[7] = { 'p', 'a', 't', 'a', 'c', 'h', 'a' }; +static const symbol s_2_2[5] = { 'a', 'c', 'h', 't', 'a' }; +static const symbol s_2_3[8] = { 'a', 'r', 'c', 'a', 'c', 'h', 't', 'a' }; +static const symbol s_2_4[6] = { 'e', 'a', 'c', 'h', 't', 'a' }; +static const symbol s_2_5[11] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h', 't', 'a' }; +static const symbol s_2_6[5] = { 'p', 'a', 'i', 't', 'e' }; +static const symbol s_2_7[3] = { 'a', 'c', 'h' }; +static const symbol s_2_8[4] = { 'e', 'a', 'c', 'h' }; +static const symbol s_2_9[7] = { 0xF3, 'i', 'd', 'e', 'a', 'c', 'h' }; +static const symbol s_2_10[7] = { 'g', 'i', 'n', 'e', 'a', 'c', 'h' }; +static const symbol s_2_11[6] = { 'p', 'a', 't', 'a', 'c', 'h' }; +static const symbol s_2_12[9] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h' }; +static const symbol s_2_13[7] = { 'p', 'a', 't', 'a', 'i', 'g', 'h' }; +static const symbol s_2_14[6] = { 0xF3, 'i', 'd', 'i', 'g', 'h' }; +static const symbol s_2_15[7] = { 'a', 'c', 'h', 't', 0xFA, 'i', 'l' }; +static const symbol s_2_16[8] = { 'e', 'a', 'c', 'h', 't', 0xFA, 'i', 'l' }; +static const symbol s_2_17[6] = { 'g', 'i', 'n', 'e', 'a', 's' }; +static const symbol s_2_18[5] = { 'g', 'i', 'n', 'i', 's' }; +static const symbol s_2_19[4] = { 'a', 'c', 'h', 't' }; +static const symbol s_2_20[7] = { 'a', 'r', 'c', 'a', 'c', 'h', 't' }; +static const symbol s_2_21[5] = { 'e', 'a', 'c', 'h', 't' }; +static const symbol s_2_22[10] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h', 't' }; +static const symbol s_2_23[9] = { 'a', 'r', 'c', 'a', 'c', 'h', 't', 'a', 0xED }; +static const symbol s_2_24[12] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h', 't', 'a', 0xED }; + +static const struct among a_2[25] = +{ +/* 0 */ { 8, s_2_0, -1, 6, 0}, +/* 1 */ { 7, s_2_1, -1, 5, 0}, +/* 2 */ { 5, s_2_2, -1, 1, 0}, +/* 3 */ { 8, s_2_3, 2, 2, 0}, +/* 4 */ { 6, s_2_4, 2, 1, 0}, +/* 5 */ { 11, s_2_5, -1, 4, 0}, +/* 6 */ { 5, s_2_6, -1, 5, 0}, +/* 7 */ { 3, s_2_7, -1, 1, 0}, +/* 8 */ { 4, s_2_8, 7, 1, 0}, +/* 9 */ { 7, s_2_9, 8, 6, 0}, +/* 10 */ { 7, s_2_10, 8, 3, 0}, +/* 11 */ { 6, s_2_11, 7, 5, 0}, +/* 12 */ { 9, s_2_12, -1, 4, 0}, +/* 13 */ { 7, s_2_13, -1, 5, 0}, +/* 14 */ { 6, s_2_14, -1, 6, 0}, +/* 15 */ { 7, s_2_15, -1, 1, 0}, +/* 16 */ { 8, s_2_16, 15, 1, 0}, +/* 17 */ { 6, s_2_17, -1, 3, 0}, +/* 18 */ { 5, s_2_18, -1, 3, 0}, +/* 19 */ { 4, s_2_19, -1, 1, 0}, +/* 20 */ { 7, s_2_20, 19, 2, 0}, +/* 21 */ { 5, s_2_21, 19, 1, 0}, +/* 22 */ { 10, s_2_22, -1, 4, 0}, +/* 23 */ { 9, s_2_23, -1, 2, 0}, +/* 24 */ { 12, s_2_24, -1, 4, 0} +}; + +static const symbol s_3_0[4] = { 'i', 'm', 'i', 'd' }; +static const symbol s_3_1[5] = { 'a', 'i', 'm', 'i', 'd' }; +static const symbol s_3_2[4] = { 0xED, 'm', 'i', 'd' }; +static const symbol s_3_3[5] = { 'a', 0xED, 'm', 'i', 'd' }; +static const symbol s_3_4[3] = { 'a', 'd', 'h' }; +static const symbol s_3_5[4] = { 'e', 'a', 'd', 'h' }; +static const symbol s_3_6[5] = { 'f', 'a', 'i', 'd', 'h' }; +static const symbol s_3_7[4] = { 'f', 'i', 'd', 'h' }; +static const symbol s_3_8[3] = { 0xE1, 'i', 'l' }; +static const symbol s_3_9[3] = { 'a', 'i', 'n' }; +static const symbol s_3_10[4] = { 't', 'e', 'a', 'r' }; +static const symbol s_3_11[3] = { 't', 'a', 'r' }; + +static const struct among a_3[12] = +{ +/* 0 */ { 4, s_3_0, -1, 1, 0}, +/* 1 */ { 5, s_3_1, 0, 1, 0}, +/* 2 */ { 4, s_3_2, -1, 1, 0}, +/* 3 */ { 5, s_3_3, 2, 1, 0}, +/* 4 */ { 3, s_3_4, -1, 2, 0}, +/* 5 */ { 4, s_3_5, 4, 2, 0}, +/* 6 */ { 5, s_3_6, -1, 1, 0}, +/* 7 */ { 4, s_3_7, -1, 1, 0}, +/* 8 */ { 3, s_3_8, -1, 2, 0}, +/* 9 */ { 3, s_3_9, -1, 2, 0}, +/* 10 */ { 4, s_3_10, -1, 2, 0}, +/* 11 */ { 3, s_3_11, -1, 2, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 2 }; + +static const symbol s_0[] = { 'f' }; +static const symbol s_1[] = { 's' }; +static const symbol s_2[] = { 'b' }; +static const symbol s_3[] = { 'c' }; +static const symbol s_4[] = { 'd' }; +static const symbol s_5[] = { 'g' }; +static const symbol s_6[] = { 'p' }; +static const symbol s_7[] = { 't' }; +static const symbol s_8[] = { 'm' }; +static const symbol s_9[] = { 'a', 'r', 'c' }; +static const symbol s_10[] = { 'g', 'i', 'n' }; +static const symbol s_11[] = { 'g', 'r', 'a', 'f' }; +static const symbol s_12[] = { 'p', 'a', 'i', 't', 'e' }; +static const symbol s_13[] = { 0xF3, 'i', 'd' }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $pV = <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); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c new file mode 100644 index 0000000..fca2e3a --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c @@ -0,0 +1,1033 @@ +/* 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 italian_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_vowel_suffix(struct SN_env * z); +static int r_verb_suffix(struct SN_env * z); +static int r_standard_suffix(struct SN_env * z); +static int r_attached_pronoun(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * italian_ISO_8859_1_create_env(void); +extern void italian_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[2] = { 'q', 'u' }; +static const symbol s_0_2[1] = { 0xE1 }; +static const symbol s_0_3[1] = { 0xE9 }; +static const symbol s_0_4[1] = { 0xED }; +static const symbol s_0_5[1] = { 0xF3 }; +static const symbol s_0_6[1] = { 0xFA }; + +static const struct among a_0[7] = +{ +/* 0 */ { 0, 0, -1, 7, 0}, +/* 1 */ { 2, s_0_1, 0, 6, 0}, +/* 2 */ { 1, s_0_2, 0, 1, 0}, +/* 3 */ { 1, s_0_3, 0, 2, 0}, +/* 4 */ { 1, s_0_4, 0, 3, 0}, +/* 5 */ { 1, s_0_5, 0, 4, 0}, +/* 6 */ { 1, s_0_6, 0, 5, 0} +}; + +static const symbol s_1_1[1] = { 'I' }; +static const symbol s_1_2[1] = { 'U' }; + +static const struct among a_1[3] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 1, s_1_1, 0, 1, 0}, +/* 2 */ { 1, s_1_2, 0, 2, 0} +}; + +static const symbol s_2_0[2] = { 'l', 'a' }; +static const symbol s_2_1[4] = { 'c', 'e', 'l', 'a' }; +static const symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' }; +static const symbol s_2_3[4] = { 'm', 'e', 'l', 'a' }; +static const symbol s_2_4[4] = { 't', 'e', 'l', 'a' }; +static const symbol s_2_5[4] = { 'v', 'e', 'l', 'a' }; +static const symbol s_2_6[2] = { 'l', 'e' }; +static const symbol s_2_7[4] = { 'c', 'e', 'l', 'e' }; +static const symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' }; +static const symbol s_2_9[4] = { 'm', 'e', 'l', 'e' }; +static const symbol s_2_10[4] = { 't', 'e', 'l', 'e' }; +static const symbol s_2_11[4] = { 'v', 'e', 'l', 'e' }; +static const symbol s_2_12[2] = { 'n', 'e' }; +static const symbol s_2_13[4] = { 'c', 'e', 'n', 'e' }; +static const symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' }; +static const symbol s_2_15[4] = { 'm', 'e', 'n', 'e' }; +static const symbol s_2_16[4] = { 's', 'e', 'n', 'e' }; +static const symbol s_2_17[4] = { 't', 'e', 'n', 'e' }; +static const symbol s_2_18[4] = { 'v', 'e', 'n', 'e' }; +static const symbol s_2_19[2] = { 'c', 'i' }; +static const symbol s_2_20[2] = { 'l', 'i' }; +static const symbol s_2_21[4] = { 'c', 'e', 'l', 'i' }; +static const symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' }; +static const symbol s_2_23[4] = { 'm', 'e', 'l', 'i' }; +static const symbol s_2_24[4] = { 't', 'e', 'l', 'i' }; +static const symbol s_2_25[4] = { 'v', 'e', 'l', 'i' }; +static const symbol s_2_26[3] = { 'g', 'l', 'i' }; +static const symbol s_2_27[2] = { 'm', 'i' }; +static const symbol s_2_28[2] = { 's', 'i' }; +static const symbol s_2_29[2] = { 't', 'i' }; +static const symbol s_2_30[2] = { 'v', 'i' }; +static const symbol s_2_31[2] = { 'l', 'o' }; +static const symbol s_2_32[4] = { 'c', 'e', 'l', 'o' }; +static const symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' }; +static const symbol s_2_34[4] = { 'm', 'e', 'l', 'o' }; +static const symbol s_2_35[4] = { 't', 'e', 'l', 'o' }; +static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' }; + +static const struct among a_2[37] = +{ +/* 0 */ { 2, s_2_0, -1, -1, 0}, +/* 1 */ { 4, s_2_1, 0, -1, 0}, +/* 2 */ { 6, s_2_2, 0, -1, 0}, +/* 3 */ { 4, s_2_3, 0, -1, 0}, +/* 4 */ { 4, s_2_4, 0, -1, 0}, +/* 5 */ { 4, s_2_5, 0, -1, 0}, +/* 6 */ { 2, s_2_6, -1, -1, 0}, +/* 7 */ { 4, s_2_7, 6, -1, 0}, +/* 8 */ { 6, s_2_8, 6, -1, 0}, +/* 9 */ { 4, s_2_9, 6, -1, 0}, +/* 10 */ { 4, s_2_10, 6, -1, 0}, +/* 11 */ { 4, s_2_11, 6, -1, 0}, +/* 12 */ { 2, s_2_12, -1, -1, 0}, +/* 13 */ { 4, s_2_13, 12, -1, 0}, +/* 14 */ { 6, s_2_14, 12, -1, 0}, +/* 15 */ { 4, s_2_15, 12, -1, 0}, +/* 16 */ { 4, s_2_16, 12, -1, 0}, +/* 17 */ { 4, s_2_17, 12, -1, 0}, +/* 18 */ { 4, s_2_18, 12, -1, 0}, +/* 19 */ { 2, s_2_19, -1, -1, 0}, +/* 20 */ { 2, s_2_20, -1, -1, 0}, +/* 21 */ { 4, s_2_21, 20, -1, 0}, +/* 22 */ { 6, s_2_22, 20, -1, 0}, +/* 23 */ { 4, s_2_23, 20, -1, 0}, +/* 24 */ { 4, s_2_24, 20, -1, 0}, +/* 25 */ { 4, s_2_25, 20, -1, 0}, +/* 26 */ { 3, s_2_26, 20, -1, 0}, +/* 27 */ { 2, s_2_27, -1, -1, 0}, +/* 28 */ { 2, s_2_28, -1, -1, 0}, +/* 29 */ { 2, s_2_29, -1, -1, 0}, +/* 30 */ { 2, s_2_30, -1, -1, 0}, +/* 31 */ { 2, s_2_31, -1, -1, 0}, +/* 32 */ { 4, s_2_32, 31, -1, 0}, +/* 33 */ { 6, s_2_33, 31, -1, 0}, +/* 34 */ { 4, s_2_34, 31, -1, 0}, +/* 35 */ { 4, s_2_35, 31, -1, 0}, +/* 36 */ { 4, s_2_36, 31, -1, 0} +}; + +static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' }; +static const symbol s_3_1[4] = { 'e', 'n', 'd', 'o' }; +static const symbol s_3_2[2] = { 'a', 'r' }; +static const symbol s_3_3[2] = { 'e', 'r' }; +static const symbol s_3_4[2] = { 'i', 'r' }; + +static const struct among a_3[5] = +{ +/* 0 */ { 4, s_3_0, -1, 1, 0}, +/* 1 */ { 4, s_3_1, -1, 1, 0}, +/* 2 */ { 2, s_3_2, -1, 2, 0}, +/* 3 */ { 2, s_3_3, -1, 2, 0}, +/* 4 */ { 2, s_3_4, -1, 2, 0} +}; + +static const symbol s_4_0[2] = { 'i', 'c' }; +static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_4_2[2] = { 'o', 's' }; +static const symbol s_4_3[2] = { 'i', 'v' }; + +static const struct among a_4[4] = +{ +/* 0 */ { 2, s_4_0, -1, -1, 0}, +/* 1 */ { 4, s_4_1, -1, -1, 0}, +/* 2 */ { 2, s_4_2, -1, -1, 0}, +/* 3 */ { 2, s_4_3, -1, 1, 0} +}; + +static const symbol s_5_0[2] = { 'i', 'c' }; +static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_5_2[2] = { 'i', 'v' }; + +static const struct among a_5[3] = +{ +/* 0 */ { 2, s_5_0, -1, 1, 0}, +/* 1 */ { 4, s_5_1, -1, 1, 0}, +/* 2 */ { 2, s_5_2, -1, 1, 0} +}; + +static const symbol s_6_0[3] = { 'i', 'c', 'a' }; +static const symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' }; +static const symbol s_6_2[3] = { 'o', 's', 'a' }; +static const symbol s_6_3[4] = { 'i', 's', 't', 'a' }; +static const symbol s_6_4[3] = { 'i', 'v', 'a' }; +static const symbol s_6_5[4] = { 'a', 'n', 'z', 'a' }; +static const symbol s_6_6[4] = { 'e', 'n', 'z', 'a' }; +static const symbol s_6_7[3] = { 'i', 'c', 'e' }; +static const symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' }; +static const symbol s_6_9[4] = { 'i', 'c', 'h', 'e' }; +static const symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' }; +static const symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' }; +static const symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' }; +static const symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' }; +static const symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' }; +static const symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' }; +static const symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' }; +static const symbol s_6_17[3] = { 'o', 's', 'e' }; +static const symbol s_6_18[4] = { 'a', 'n', 't', 'e' }; +static const symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' }; +static const symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' }; +static const symbol s_6_21[4] = { 'i', 's', 't', 'e' }; +static const symbol s_6_22[3] = { 'i', 'v', 'e' }; +static const symbol s_6_23[4] = { 'a', 'n', 'z', 'e' }; +static const symbol s_6_24[4] = { 'e', 'n', 'z', 'e' }; +static const symbol s_6_25[3] = { 'i', 'c', 'i' }; +static const symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' }; +static const symbol s_6_27[4] = { 'i', 'c', 'h', 'i' }; +static const symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' }; +static const symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' }; +static const symbol s_6_30[4] = { 'i', 's', 'm', 'i' }; +static const symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' }; +static const symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' }; +static const symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' }; +static const symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' }; +static const symbol s_6_35[3] = { 'o', 's', 'i' }; +static const symbol s_6_36[4] = { 'a', 'n', 't', 'i' }; +static const symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' }; +static const symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' }; +static const symbol s_6_39[4] = { 'i', 's', 't', 'i' }; +static const symbol s_6_40[3] = { 'i', 'v', 'i' }; +static const symbol s_6_41[3] = { 'i', 'c', 'o' }; +static const symbol s_6_42[4] = { 'i', 's', 'm', 'o' }; +static const symbol s_6_43[3] = { 'o', 's', 'o' }; +static const symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' }; +static const symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' }; +static const symbol s_6_46[3] = { 'i', 'v', 'o' }; +static const symbol s_6_47[3] = { 'i', 't', 0xE0 }; +static const symbol s_6_48[4] = { 'i', 's', 't', 0xE0 }; +static const symbol s_6_49[4] = { 'i', 's', 't', 0xE8 }; +static const symbol s_6_50[4] = { 'i', 's', 't', 0xEC }; + +static const struct among a_6[51] = +{ +/* 0 */ { 3, s_6_0, -1, 1, 0}, +/* 1 */ { 5, s_6_1, -1, 3, 0}, +/* 2 */ { 3, s_6_2, -1, 1, 0}, +/* 3 */ { 4, s_6_3, -1, 1, 0}, +/* 4 */ { 3, s_6_4, -1, 9, 0}, +/* 5 */ { 4, s_6_5, -1, 1, 0}, +/* 6 */ { 4, s_6_6, -1, 5, 0}, +/* 7 */ { 3, s_6_7, -1, 1, 0}, +/* 8 */ { 6, s_6_8, 7, 1, 0}, +/* 9 */ { 4, s_6_9, -1, 1, 0}, +/* 10 */ { 5, s_6_10, -1, 3, 0}, +/* 11 */ { 5, s_6_11, -1, 1, 0}, +/* 12 */ { 5, s_6_12, -1, 1, 0}, +/* 13 */ { 6, s_6_13, -1, 4, 0}, +/* 14 */ { 6, s_6_14, -1, 2, 0}, +/* 15 */ { 6, s_6_15, -1, 4, 0}, +/* 16 */ { 5, s_6_16, -1, 2, 0}, +/* 17 */ { 3, s_6_17, -1, 1, 0}, +/* 18 */ { 4, s_6_18, -1, 1, 0}, +/* 19 */ { 5, s_6_19, -1, 1, 0}, +/* 20 */ { 6, s_6_20, 19, 7, 0}, +/* 21 */ { 4, s_6_21, -1, 1, 0}, +/* 22 */ { 3, s_6_22, -1, 9, 0}, +/* 23 */ { 4, s_6_23, -1, 1, 0}, +/* 24 */ { 4, s_6_24, -1, 5, 0}, +/* 25 */ { 3, s_6_25, -1, 1, 0}, +/* 26 */ { 6, s_6_26, 25, 1, 0}, +/* 27 */ { 4, s_6_27, -1, 1, 0}, +/* 28 */ { 5, s_6_28, -1, 1, 0}, +/* 29 */ { 5, s_6_29, -1, 1, 0}, +/* 30 */ { 4, s_6_30, -1, 1, 0}, +/* 31 */ { 6, s_6_31, -1, 4, 0}, +/* 32 */ { 6, s_6_32, -1, 2, 0}, +/* 33 */ { 6, s_6_33, -1, 4, 0}, +/* 34 */ { 5, s_6_34, -1, 2, 0}, +/* 35 */ { 3, s_6_35, -1, 1, 0}, +/* 36 */ { 4, s_6_36, -1, 1, 0}, +/* 37 */ { 6, s_6_37, -1, 6, 0}, +/* 38 */ { 6, s_6_38, -1, 6, 0}, +/* 39 */ { 4, s_6_39, -1, 1, 0}, +/* 40 */ { 3, s_6_40, -1, 9, 0}, +/* 41 */ { 3, s_6_41, -1, 1, 0}, +/* 42 */ { 4, s_6_42, -1, 1, 0}, +/* 43 */ { 3, s_6_43, -1, 1, 0}, +/* 44 */ { 6, s_6_44, -1, 6, 0}, +/* 45 */ { 6, s_6_45, -1, 6, 0}, +/* 46 */ { 3, s_6_46, -1, 9, 0}, +/* 47 */ { 3, s_6_47, -1, 8, 0}, +/* 48 */ { 4, s_6_48, -1, 1, 0}, +/* 49 */ { 4, s_6_49, -1, 1, 0}, +/* 50 */ { 4, s_6_50, -1, 1, 0} +}; + +static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' }; +static const symbol s_7_1[4] = { 'e', 'n', 'd', 'a' }; +static const symbol s_7_2[3] = { 'a', 't', 'a' }; +static const symbol s_7_3[3] = { 'i', 't', 'a' }; +static const symbol s_7_4[3] = { 'u', 't', 'a' }; +static const symbol s_7_5[3] = { 'a', 'v', 'a' }; +static const symbol s_7_6[3] = { 'e', 'v', 'a' }; +static const symbol s_7_7[3] = { 'i', 'v', 'a' }; +static const symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' }; +static const symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' }; +static const symbol s_7_10[4] = { 'i', 's', 'c', 'e' }; +static const symbol s_7_11[4] = { 'e', 'n', 'd', 'e' }; +static const symbol s_7_12[3] = { 'a', 'r', 'e' }; +static const symbol s_7_13[3] = { 'e', 'r', 'e' }; +static const symbol s_7_14[3] = { 'i', 'r', 'e' }; +static const symbol s_7_15[4] = { 'a', 's', 's', 'e' }; +static const symbol s_7_16[3] = { 'a', 't', 'e' }; +static const symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' }; +static const symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' }; +static const symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' }; +static const symbol s_7_20[3] = { 'e', 't', 'e' }; +static const symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' }; +static const symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' }; +static const symbol s_7_23[3] = { 'i', 't', 'e' }; +static const symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' }; +static const symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' }; +static const symbol s_7_26[3] = { 'u', 't', 'e' }; +static const symbol s_7_27[4] = { 'e', 'r', 'a', 'i' }; +static const symbol s_7_28[4] = { 'i', 'r', 'a', 'i' }; +static const symbol s_7_29[4] = { 'i', 's', 'c', 'i' }; +static const symbol s_7_30[4] = { 'e', 'n', 'd', 'i' }; +static const symbol s_7_31[4] = { 'e', 'r', 'e', 'i' }; +static const symbol s_7_32[4] = { 'i', 'r', 'e', 'i' }; +static const symbol s_7_33[4] = { 'a', 's', 's', 'i' }; +static const symbol s_7_34[3] = { 'a', 't', 'i' }; +static const symbol s_7_35[3] = { 'i', 't', 'i' }; +static const symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' }; +static const symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' }; +static const symbol s_7_38[3] = { 'u', 't', 'i' }; +static const symbol s_7_39[3] = { 'a', 'v', 'i' }; +static const symbol s_7_40[3] = { 'e', 'v', 'i' }; +static const symbol s_7_41[3] = { 'i', 'v', 'i' }; +static const symbol s_7_42[4] = { 'i', 's', 'c', 'o' }; +static const symbol s_7_43[4] = { 'a', 'n', 'd', 'o' }; +static const symbol s_7_44[4] = { 'e', 'n', 'd', 'o' }; +static const symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' }; +static const symbol s_7_46[4] = { 'i', 'a', 'm', 'o' }; +static const symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' }; +static const symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' }; +static const symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' }; +static const symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' }; +static const symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' }; +static const symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' }; +static const symbol s_7_53[4] = { 'a', 'm', 'm', 'o' }; +static const symbol s_7_54[4] = { 'e', 'm', 'm', 'o' }; +static const symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' }; +static const symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' }; +static const symbol s_7_57[4] = { 'i', 'm', 'm', 'o' }; +static const symbol s_7_58[3] = { 'a', 'n', 'o' }; +static const symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' }; +static const symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' }; +static const symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' }; +static const symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' }; +static const symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' }; +static const symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' }; +static const symbol s_7_65[3] = { 'o', 'n', 'o' }; +static const symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' }; +static const symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' }; +static const symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' }; +static const symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' }; +static const symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' }; +static const symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' }; +static const symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' }; +static const symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' }; +static const symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' }; +static const symbol s_7_75[3] = { 'a', 't', 'o' }; +static const symbol s_7_76[3] = { 'i', 't', 'o' }; +static const symbol s_7_77[3] = { 'u', 't', 'o' }; +static const symbol s_7_78[3] = { 'a', 'v', 'o' }; +static const symbol s_7_79[3] = { 'e', 'v', 'o' }; +static const symbol s_7_80[3] = { 'i', 'v', 'o' }; +static const symbol s_7_81[2] = { 'a', 'r' }; +static const symbol s_7_82[2] = { 'i', 'r' }; +static const symbol s_7_83[3] = { 'e', 'r', 0xE0 }; +static const symbol s_7_84[3] = { 'i', 'r', 0xE0 }; +static const symbol s_7_85[3] = { 'e', 'r', 0xF2 }; +static const symbol s_7_86[3] = { 'i', 'r', 0xF2 }; + +static const struct among a_7[87] = +{ +/* 0 */ { 4, s_7_0, -1, 1, 0}, +/* 1 */ { 4, s_7_1, -1, 1, 0}, +/* 2 */ { 3, s_7_2, -1, 1, 0}, +/* 3 */ { 3, s_7_3, -1, 1, 0}, +/* 4 */ { 3, s_7_4, -1, 1, 0}, +/* 5 */ { 3, s_7_5, -1, 1, 0}, +/* 6 */ { 3, s_7_6, -1, 1, 0}, +/* 7 */ { 3, s_7_7, -1, 1, 0}, +/* 8 */ { 6, s_7_8, -1, 1, 0}, +/* 9 */ { 6, s_7_9, -1, 1, 0}, +/* 10 */ { 4, s_7_10, -1, 1, 0}, +/* 11 */ { 4, s_7_11, -1, 1, 0}, +/* 12 */ { 3, s_7_12, -1, 1, 0}, +/* 13 */ { 3, s_7_13, -1, 1, 0}, +/* 14 */ { 3, s_7_14, -1, 1, 0}, +/* 15 */ { 4, s_7_15, -1, 1, 0}, +/* 16 */ { 3, s_7_16, -1, 1, 0}, +/* 17 */ { 5, s_7_17, 16, 1, 0}, +/* 18 */ { 5, s_7_18, 16, 1, 0}, +/* 19 */ { 5, s_7_19, 16, 1, 0}, +/* 20 */ { 3, s_7_20, -1, 1, 0}, +/* 21 */ { 5, s_7_21, 20, 1, 0}, +/* 22 */ { 5, s_7_22, 20, 1, 0}, +/* 23 */ { 3, s_7_23, -1, 1, 0}, +/* 24 */ { 6, s_7_24, -1, 1, 0}, +/* 25 */ { 6, s_7_25, -1, 1, 0}, +/* 26 */ { 3, s_7_26, -1, 1, 0}, +/* 27 */ { 4, s_7_27, -1, 1, 0}, +/* 28 */ { 4, s_7_28, -1, 1, 0}, +/* 29 */ { 4, s_7_29, -1, 1, 0}, +/* 30 */ { 4, s_7_30, -1, 1, 0}, +/* 31 */ { 4, s_7_31, -1, 1, 0}, +/* 32 */ { 4, s_7_32, -1, 1, 0}, +/* 33 */ { 4, s_7_33, -1, 1, 0}, +/* 34 */ { 3, s_7_34, -1, 1, 0}, +/* 35 */ { 3, s_7_35, -1, 1, 0}, +/* 36 */ { 6, s_7_36, -1, 1, 0}, +/* 37 */ { 6, s_7_37, -1, 1, 0}, +/* 38 */ { 3, s_7_38, -1, 1, 0}, +/* 39 */ { 3, s_7_39, -1, 1, 0}, +/* 40 */ { 3, s_7_40, -1, 1, 0}, +/* 41 */ { 3, s_7_41, -1, 1, 0}, +/* 42 */ { 4, s_7_42, -1, 1, 0}, +/* 43 */ { 4, s_7_43, -1, 1, 0}, +/* 44 */ { 4, s_7_44, -1, 1, 0}, +/* 45 */ { 4, s_7_45, -1, 1, 0}, +/* 46 */ { 4, s_7_46, -1, 1, 0}, +/* 47 */ { 5, s_7_47, -1, 1, 0}, +/* 48 */ { 5, s_7_48, -1, 1, 0}, +/* 49 */ { 5, s_7_49, -1, 1, 0}, +/* 50 */ { 5, s_7_50, -1, 1, 0}, +/* 51 */ { 5, s_7_51, -1, 1, 0}, +/* 52 */ { 6, s_7_52, -1, 1, 0}, +/* 53 */ { 4, s_7_53, -1, 1, 0}, +/* 54 */ { 4, s_7_54, -1, 1, 0}, +/* 55 */ { 6, s_7_55, 54, 1, 0}, +/* 56 */ { 6, s_7_56, 54, 1, 0}, +/* 57 */ { 4, s_7_57, -1, 1, 0}, +/* 58 */ { 3, s_7_58, -1, 1, 0}, +/* 59 */ { 6, s_7_59, 58, 1, 0}, +/* 60 */ { 5, s_7_60, 58, 1, 0}, +/* 61 */ { 5, s_7_61, 58, 1, 0}, +/* 62 */ { 5, s_7_62, 58, 1, 0}, +/* 63 */ { 6, s_7_63, -1, 1, 0}, +/* 64 */ { 6, s_7_64, -1, 1, 0}, +/* 65 */ { 3, s_7_65, -1, 1, 0}, +/* 66 */ { 6, s_7_66, 65, 1, 0}, +/* 67 */ { 5, s_7_67, 65, 1, 0}, +/* 68 */ { 5, s_7_68, 65, 1, 0}, +/* 69 */ { 5, s_7_69, 65, 1, 0}, +/* 70 */ { 8, s_7_70, -1, 1, 0}, +/* 71 */ { 8, s_7_71, -1, 1, 0}, +/* 72 */ { 6, s_7_72, -1, 1, 0}, +/* 73 */ { 6, s_7_73, -1, 1, 0}, +/* 74 */ { 6, s_7_74, -1, 1, 0}, +/* 75 */ { 3, s_7_75, -1, 1, 0}, +/* 76 */ { 3, s_7_76, -1, 1, 0}, +/* 77 */ { 3, s_7_77, -1, 1, 0}, +/* 78 */ { 3, s_7_78, -1, 1, 0}, +/* 79 */ { 3, s_7_79, -1, 1, 0}, +/* 80 */ { 3, s_7_80, -1, 1, 0}, +/* 81 */ { 2, s_7_81, -1, 1, 0}, +/* 82 */ { 2, s_7_82, -1, 1, 0}, +/* 83 */ { 3, s_7_83, -1, 1, 0}, +/* 84 */ { 3, s_7_84, -1, 1, 0}, +/* 85 */ { 3, s_7_85, -1, 1, 0}, +/* 86 */ { 3, s_7_86, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 }; + +static const unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 }; + +static const unsigned char g_CG[] = { 17 }; + +static const symbol s_0[] = { 0xE0 }; +static const symbol s_1[] = { 0xE8 }; +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[] = { 'I' }; +static const symbol s_8[] = { 'i' }; +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) { /* forwardmode */ + int among_var; + { int c_test1 = z->c; /* test, line 35 */ + while(1) { /* repeat, line 35 */ + 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) { /* among, line 36 */ + case 1: + { int ret = slice_from_s(z, 1, s_0); /* <-, line 37 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_1); /* <-, line 38 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_2); /* <-, line 39 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 1, s_3); /* <-, line 40 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 1, s_4); /* <-, line 41 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_from_s(z, 2, s_5); /* <-, line 42 */ + if (ret < 0) return ret; + } + break; + case 7: + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 43 */ + break; + } + continue; + lab0: + z->c = c2; + break; + } + z->c = c_test1; + } + while(1) { /* repeat, line 46 */ + int c3 = z->c; + while(1) { /* goto, line 46 */ + 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 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; /* 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 = 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; /* grouping v, line 48 */ + { int ret = slice_from_s(z, 1, s_7); /* <-, line 48 */ + if (ret < 0) return ret; + } + } + lab3: + z->c = c4; + break; + lab2: + z->c = c4; + if (z->c >= z->l) goto lab1; + z->c++; /* goto, line 46 */ + } + continue; + lab1: + z->c = c3; + break; + } + return 1; +} + +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; /* grouping v, line 59 */ + { int c3 = z->c; /* or, line 59 */ + 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; + z->c += ret; + } + goto lab3; + lab4: + z->c = c3; + 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; + z->c += ret; + } + } + lab3: + goto lab1; + lab2: + z->c = c2; + 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; /* non v, line 61 */ + { /* gopast */ /* grouping v, line 61 */ + int ret = out_grouping(z, g_v, 97, 249, 1); + if (ret < 0) goto lab6; + z->c += ret; + } + goto lab5; + lab6: + z->c = c4; + 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 */ + } + lab5: + ; + } + lab1: + z->I[0] = z->c; /* setmark pV, line 62 */ + lab0: + z->c = c1; + } + { int c5 = z->c; /* do, line 64 */ + { /* gopast */ /* grouping v, line 65 */ + int ret = out_grouping(z, g_v, 97, 249, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 65 */ + int ret = in_grouping(z, g_v, 97, 249, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[1] = z->c; /* setmark p1, line 65 */ + { /* gopast */ /* grouping v, line 66 */ + int ret = out_grouping(z, g_v, 97, 249, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 66 */ + int ret = in_grouping(z, g_v, 97, 249, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[2] = z->c; /* setmark p2, line 66 */ + lab7: + z->c = c5; + } + return 1; +} + +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 /* 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) { /* among, line 72 */ + case 1: + { 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_9); /* <-, line 74 */ + if (ret < 0) return ret; + } + break; + case 3: + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 75 */ + break; + } + continue; + lab0: + z->c = c1; + 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 82 */ + return 1; +} + +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) { /* 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) { /* 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; /* 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, line 97 */ + among_var = find_among_b(z, a_3, 5); + if (!(among_var)) return 0; + { int ret = r_RV(z); /* call RV, line 97 */ + if (ret <= 0) return ret; + } + 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_10); /* <-, line 99 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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) { /* among, line 104 */ + case 1: + { 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); /* call R2, line 113 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 113 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* try, line 114 */ + z->ket = z->c; /* [, line 114 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + lab0: + ; + } + break; + case 3: + { int ret = r_R2(z); /* call R2, line 117 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_12); /* <-, line 117 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = r_R2(z); /* call R2, line 119 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 1, s_13); /* <-, line 119 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = r_R2(z); /* call R2, line 121 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 4, s_14); /* <-, line 121 */ + if (ret < 0) return ret; + } + break; + case 6: + { 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); /* call R1, line 125 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 125 */ + if (ret < 0) return ret; + } + { 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 - 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); /* 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) { /* among, line 127 */ + case 1: + z->ket = z->c; /* [, line 128 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + break; + } + lab1: + ; + } + break; + case 8: + { 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 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 - 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 */ + { 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); /* call R2, line 142 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 142 */ + if (ret < 0) return ret; + } + { int m4 = z->l - z->c; (void)m4; /* try, line 143 */ + z->ket = z->c; /* [, line 143 */ + 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); /* 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_17))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */ + z->bra = z->c; /* ], 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; + } + lab3: + ; + } + break; + } + return 1; +} + +static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 148 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 149 */ + if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; } /* substring, line 149 */ + z->bra = z->c; /* ], line 149 */ + { int ret = slice_del(z); /* delete, line 163 */ + if (ret < 0) return ret; + } + z->lb = mlimit1; + } + return 1; +} + +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 - m1; goto lab0; } /* grouping AEIO, line 172 */ + z->bra = z->c; /* ], 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 (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); /* 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 */ + if (ret < 0) return ret; + } + lab0: + ; + } + { int m2 = z->l - z->c; (void)m2; /* try, line 175 */ + z->ket = z->c; /* [, line 176 */ + 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 - 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 */ + if (ret < 0) return ret; + } + lab1: + ; + } + return 1; +} + +extern int italian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, 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; + } + /* 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 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 - m2; + } + { 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 - 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 - m3; + } + { 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 - m5; + } + z->c = z->lb; + { 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 = c6; + } + return 1; +} + +extern struct SN_env * italian_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } + +extern void italian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c new file mode 100644 index 0000000..88eb929 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c @@ -0,0 +1,283 @@ +/* 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 norwegian_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_other_suffix(struct SN_env * z); +static int r_consonant_pair(struct SN_env * z); +static int r_main_suffix(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * norwegian_ISO_8859_1_create_env(void); +extern void norwegian_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[1] = { 'a' }; +static const symbol s_0_1[1] = { 'e' }; +static const symbol s_0_2[3] = { 'e', 'd', 'e' }; +static const symbol s_0_3[4] = { 'a', 'n', 'd', 'e' }; +static const symbol s_0_4[4] = { 'e', 'n', 'd', 'e' }; +static const symbol s_0_5[3] = { 'a', 'n', 'e' }; +static const symbol s_0_6[3] = { 'e', 'n', 'e' }; +static const symbol s_0_7[6] = { 'h', 'e', 't', 'e', 'n', 'e' }; +static const symbol s_0_8[4] = { 'e', 'r', 't', 'e' }; +static const symbol s_0_9[2] = { 'e', 'n' }; +static const symbol s_0_10[5] = { 'h', 'e', 't', 'e', 'n' }; +static const symbol s_0_11[2] = { 'a', 'r' }; +static const symbol s_0_12[2] = { 'e', 'r' }; +static const symbol s_0_13[5] = { 'h', 'e', 't', 'e', 'r' }; +static const symbol s_0_14[1] = { 's' }; +static const symbol s_0_15[2] = { 'a', 's' }; +static const symbol s_0_16[2] = { 'e', 's' }; +static const symbol s_0_17[4] = { 'e', 'd', 'e', 's' }; +static const symbol s_0_18[5] = { 'e', 'n', 'd', 'e', 's' }; +static const symbol s_0_19[4] = { 'e', 'n', 'e', 's' }; +static const symbol s_0_20[7] = { 'h', 'e', 't', 'e', 'n', 'e', 's' }; +static const symbol s_0_21[3] = { 'e', 'n', 's' }; +static const symbol s_0_22[6] = { 'h', 'e', 't', 'e', 'n', 's' }; +static const symbol s_0_23[3] = { 'e', 'r', 's' }; +static const symbol s_0_24[3] = { 'e', 't', 's' }; +static const symbol s_0_25[2] = { 'e', 't' }; +static const symbol s_0_26[3] = { 'h', 'e', 't' }; +static const symbol s_0_27[3] = { 'e', 'r', 't' }; +static const symbol s_0_28[3] = { 'a', 's', 't' }; + +static const struct among a_0[29] = +{ +/* 0 */ { 1, s_0_0, -1, 1, 0}, +/* 1 */ { 1, s_0_1, -1, 1, 0}, +/* 2 */ { 3, s_0_2, 1, 1, 0}, +/* 3 */ { 4, s_0_3, 1, 1, 0}, +/* 4 */ { 4, s_0_4, 1, 1, 0}, +/* 5 */ { 3, s_0_5, 1, 1, 0}, +/* 6 */ { 3, s_0_6, 1, 1, 0}, +/* 7 */ { 6, s_0_7, 6, 1, 0}, +/* 8 */ { 4, s_0_8, 1, 3, 0}, +/* 9 */ { 2, s_0_9, -1, 1, 0}, +/* 10 */ { 5, s_0_10, 9, 1, 0}, +/* 11 */ { 2, s_0_11, -1, 1, 0}, +/* 12 */ { 2, s_0_12, -1, 1, 0}, +/* 13 */ { 5, s_0_13, 12, 1, 0}, +/* 14 */ { 1, s_0_14, -1, 2, 0}, +/* 15 */ { 2, s_0_15, 14, 1, 0}, +/* 16 */ { 2, s_0_16, 14, 1, 0}, +/* 17 */ { 4, s_0_17, 16, 1, 0}, +/* 18 */ { 5, s_0_18, 16, 1, 0}, +/* 19 */ { 4, s_0_19, 16, 1, 0}, +/* 20 */ { 7, s_0_20, 19, 1, 0}, +/* 21 */ { 3, s_0_21, 14, 1, 0}, +/* 22 */ { 6, s_0_22, 21, 1, 0}, +/* 23 */ { 3, s_0_23, 14, 1, 0}, +/* 24 */ { 3, s_0_24, 14, 1, 0}, +/* 25 */ { 2, s_0_25, -1, 1, 0}, +/* 26 */ { 3, s_0_26, 25, 1, 0}, +/* 27 */ { 3, s_0_27, -1, 3, 0}, +/* 28 */ { 3, s_0_28, -1, 1, 0} +}; + +static const symbol s_1_0[2] = { 'd', 't' }; +static const symbol s_1_1[2] = { 'v', 't' }; + +static const struct among a_1[2] = +{ +/* 0 */ { 2, s_1_0, -1, -1, 0}, +/* 1 */ { 2, s_1_1, -1, -1, 0} +}; + +static const symbol s_2_0[3] = { 'l', 'e', 'g' }; +static const symbol s_2_1[4] = { 'e', 'l', 'e', 'g' }; +static const symbol s_2_2[2] = { 'i', 'g' }; +static const symbol s_2_3[3] = { 'e', 'i', 'g' }; +static const symbol s_2_4[3] = { 'l', 'i', 'g' }; +static const symbol s_2_5[4] = { 'e', 'l', 'i', 'g' }; +static const symbol s_2_6[3] = { 'e', 'l', 's' }; +static const symbol s_2_7[3] = { 'l', 'o', 'v' }; +static const symbol s_2_8[4] = { 'e', 'l', 'o', 'v' }; +static const symbol s_2_9[4] = { 's', 'l', 'o', 'v' }; +static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' }; + +static const struct among a_2[11] = +{ +/* 0 */ { 3, s_2_0, -1, 1, 0}, +/* 1 */ { 4, s_2_1, 0, 1, 0}, +/* 2 */ { 2, s_2_2, -1, 1, 0}, +/* 3 */ { 3, s_2_3, 2, 1, 0}, +/* 4 */ { 3, s_2_4, 2, 1, 0}, +/* 5 */ { 4, s_2_5, 4, 1, 0}, +/* 6 */ { 3, s_2_6, -1, 1, 0}, +/* 7 */ { 3, s_2_7, -1, 1, 0}, +/* 8 */ { 4, s_2_8, 7, 1, 0}, +/* 9 */ { 4, s_2_9, 7, 1, 0}, +/* 10 */ { 7, s_2_10, 9, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 }; + +static const unsigned char g_s_ending[] = { 119, 125, 149, 1 }; + +static const symbol s_0[] = { 'e', 'r' }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */ + { int c_test1 = z->c; /* test, line 30 */ + { int ret = z->c + 3; /* hop, line 30 */ + if (0 > ret || ret > z->l) return 0; + z->c = ret; + } + z->I[1] = z->c; /* setmark x, line 30 */ + 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 */ + int ret = in_grouping(z, g_v, 97, 248, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 31 */ + /* try, line 32 */ + if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 32 */ + z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 32 */ +lab0: + return 1; +} + +static int r_main_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 38 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 38 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 38 */ + 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 = mlimit1; + } + switch (among_var) { /* among, line 39 */ + case 1: + { int ret = slice_del(z); /* delete, line 44 */ + if (ret < 0) return ret; + } + break; + case 2: + { int m2 = z->l - z->c; (void)m2; /* or, line 46 */ + if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1; /* grouping s_ending, line 46 */ + goto lab0; + lab1: + z->c = z->l - m2; + 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 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 2, s_0); /* <-, line 48 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; + mlimit2 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 54 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } /* substring, line 54 */ + if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; } + z->bra = z->c; /* ], line 54 */ + z->lb = mlimit2; + } + z->c = z->l - m_test1; + } + if (z->c <= z->lb) return 0; + z->c--; /* next, line 59 */ + z->bra = z->c; /* ], line 59 */ + { int ret = slice_del(z); /* delete, line 59 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_other_suffix(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 63 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 63 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 63 */ + if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 63 */ + z->lb = mlimit1; + } + { 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) { /* forwardmode */ + { int c1 = z->c; /* do, line 74 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 74 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + 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); /* 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); /* 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); /* call other_suffix, line 78 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + lab3: + z->c = z->l - m4; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * norwegian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); } + +extern void norwegian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c new file mode 100644 index 0000000..cc330e0 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c @@ -0,0 +1,734 @@ +/* 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 porter_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_Step_5b(struct SN_env * z); +static int r_Step_5a(struct SN_env * z); +static int r_Step_4(struct SN_env * z); +static int r_Step_3(struct SN_env * z); +static int r_Step_2(struct SN_env * z); +static int r_Step_1c(struct SN_env * z); +static int r_Step_1b(struct SN_env * z); +static int r_Step_1a(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_shortv(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * porter_ISO_8859_1_create_env(void); +extern void porter_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[1] = { 's' }; +static const symbol s_0_1[3] = { 'i', 'e', 's' }; +static const symbol s_0_2[4] = { 's', 's', 'e', 's' }; +static const symbol s_0_3[2] = { 's', 's' }; + +static const struct among a_0[4] = +{ +/* 0 */ { 1, s_0_0, -1, 3, 0}, +/* 1 */ { 3, s_0_1, 0, 2, 0}, +/* 2 */ { 4, s_0_2, 0, 1, 0}, +/* 3 */ { 2, s_0_3, 0, -1, 0} +}; + +static const symbol s_1_1[2] = { 'b', 'b' }; +static const symbol s_1_2[2] = { 'd', 'd' }; +static const symbol s_1_3[2] = { 'f', 'f' }; +static const symbol s_1_4[2] = { 'g', 'g' }; +static const symbol s_1_5[2] = { 'b', 'l' }; +static const symbol s_1_6[2] = { 'm', 'm' }; +static const symbol s_1_7[2] = { 'n', 'n' }; +static const symbol s_1_8[2] = { 'p', 'p' }; +static const symbol s_1_9[2] = { 'r', 'r' }; +static const symbol s_1_10[2] = { 'a', 't' }; +static const symbol s_1_11[2] = { 't', 't' }; +static const symbol s_1_12[2] = { 'i', 'z' }; + +static const struct among a_1[13] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 2, s_1_1, 0, 2, 0}, +/* 2 */ { 2, s_1_2, 0, 2, 0}, +/* 3 */ { 2, s_1_3, 0, 2, 0}, +/* 4 */ { 2, s_1_4, 0, 2, 0}, +/* 5 */ { 2, s_1_5, 0, 1, 0}, +/* 6 */ { 2, s_1_6, 0, 2, 0}, +/* 7 */ { 2, s_1_7, 0, 2, 0}, +/* 8 */ { 2, s_1_8, 0, 2, 0}, +/* 9 */ { 2, s_1_9, 0, 2, 0}, +/* 10 */ { 2, s_1_10, 0, 1, 0}, +/* 11 */ { 2, s_1_11, 0, 2, 0}, +/* 12 */ { 2, s_1_12, 0, 1, 0} +}; + +static const symbol s_2_0[2] = { 'e', 'd' }; +static const symbol s_2_1[3] = { 'e', 'e', 'd' }; +static const symbol s_2_2[3] = { 'i', 'n', 'g' }; + +static const struct among a_2[3] = +{ +/* 0 */ { 2, s_2_0, -1, 2, 0}, +/* 1 */ { 3, s_2_1, 0, 1, 0}, +/* 2 */ { 3, s_2_2, -1, 2, 0} +}; + +static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' }; +static const symbol s_3_1[4] = { 'e', 'n', 'c', 'i' }; +static const symbol s_3_2[4] = { 'a', 'b', 'l', 'i' }; +static const symbol s_3_3[3] = { 'e', 'l', 'i' }; +static const symbol s_3_4[4] = { 'a', 'l', 'l', 'i' }; +static const symbol s_3_5[5] = { 'o', 'u', 's', 'l', 'i' }; +static const symbol s_3_6[5] = { 'e', 'n', 't', 'l', 'i' }; +static const symbol s_3_7[5] = { 'a', 'l', 'i', 't', 'i' }; +static const symbol s_3_8[6] = { 'b', 'i', 'l', 'i', 't', 'i' }; +static const symbol s_3_9[5] = { 'i', 'v', 'i', 't', 'i' }; +static const symbol s_3_10[6] = { 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_3_11[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_3_12[5] = { 'a', 'l', 'i', 's', 'm' }; +static const symbol s_3_13[5] = { 'a', 't', 'i', 'o', 'n' }; +static const symbol s_3_14[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' }; +static const symbol s_3_15[4] = { 'i', 'z', 'e', 'r' }; +static const symbol s_3_16[4] = { 'a', 't', 'o', 'r' }; +static const symbol s_3_17[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' }; +static const symbol s_3_18[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' }; +static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' }; + +static const struct among a_3[20] = +{ +/* 0 */ { 4, s_3_0, -1, 3, 0}, +/* 1 */ { 4, s_3_1, -1, 2, 0}, +/* 2 */ { 4, s_3_2, -1, 4, 0}, +/* 3 */ { 3, s_3_3, -1, 6, 0}, +/* 4 */ { 4, s_3_4, -1, 9, 0}, +/* 5 */ { 5, s_3_5, -1, 11, 0}, +/* 6 */ { 5, s_3_6, -1, 5, 0}, +/* 7 */ { 5, s_3_7, -1, 9, 0}, +/* 8 */ { 6, s_3_8, -1, 13, 0}, +/* 9 */ { 5, s_3_9, -1, 12, 0}, +/* 10 */ { 6, s_3_10, -1, 1, 0}, +/* 11 */ { 7, s_3_11, 10, 8, 0}, +/* 12 */ { 5, s_3_12, -1, 9, 0}, +/* 13 */ { 5, s_3_13, -1, 8, 0}, +/* 14 */ { 7, s_3_14, 13, 7, 0}, +/* 15 */ { 4, s_3_15, -1, 7, 0}, +/* 16 */ { 4, s_3_16, -1, 8, 0}, +/* 17 */ { 7, s_3_17, -1, 12, 0}, +/* 18 */ { 7, s_3_18, -1, 10, 0}, +/* 19 */ { 7, s_3_19, -1, 11, 0} +}; + +static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' }; +static const symbol s_4_1[5] = { 'a', 't', 'i', 'v', 'e' }; +static const symbol s_4_2[5] = { 'a', 'l', 'i', 'z', 'e' }; +static const symbol s_4_3[5] = { 'i', 'c', 'i', 't', 'i' }; +static const symbol s_4_4[4] = { 'i', 'c', 'a', 'l' }; +static const symbol s_4_5[3] = { 'f', 'u', 'l' }; +static const symbol s_4_6[4] = { 'n', 'e', 's', 's' }; + +static const struct among a_4[7] = +{ +/* 0 */ { 5, s_4_0, -1, 2, 0}, +/* 1 */ { 5, s_4_1, -1, 3, 0}, +/* 2 */ { 5, s_4_2, -1, 1, 0}, +/* 3 */ { 5, s_4_3, -1, 2, 0}, +/* 4 */ { 4, s_4_4, -1, 2, 0}, +/* 5 */ { 3, s_4_5, -1, 3, 0}, +/* 6 */ { 4, s_4_6, -1, 3, 0} +}; + +static const symbol s_5_0[2] = { 'i', 'c' }; +static const symbol s_5_1[4] = { 'a', 'n', 'c', 'e' }; +static const symbol s_5_2[4] = { 'e', 'n', 'c', 'e' }; +static const symbol s_5_3[4] = { 'a', 'b', 'l', 'e' }; +static const symbol s_5_4[4] = { 'i', 'b', 'l', 'e' }; +static const symbol s_5_5[3] = { 'a', 't', 'e' }; +static const symbol s_5_6[3] = { 'i', 'v', 'e' }; +static const symbol s_5_7[3] = { 'i', 'z', 'e' }; +static const symbol s_5_8[3] = { 'i', 't', 'i' }; +static const symbol s_5_9[2] = { 'a', 'l' }; +static const symbol s_5_10[3] = { 'i', 's', 'm' }; +static const symbol s_5_11[3] = { 'i', 'o', 'n' }; +static const symbol s_5_12[2] = { 'e', 'r' }; +static const symbol s_5_13[3] = { 'o', 'u', 's' }; +static const symbol s_5_14[3] = { 'a', 'n', 't' }; +static const symbol s_5_15[3] = { 'e', 'n', 't' }; +static const symbol s_5_16[4] = { 'm', 'e', 'n', 't' }; +static const symbol s_5_17[5] = { 'e', 'm', 'e', 'n', 't' }; +static const symbol s_5_18[2] = { 'o', 'u' }; + +static const struct among a_5[19] = +{ +/* 0 */ { 2, s_5_0, -1, 1, 0}, +/* 1 */ { 4, s_5_1, -1, 1, 0}, +/* 2 */ { 4, s_5_2, -1, 1, 0}, +/* 3 */ { 4, s_5_3, -1, 1, 0}, +/* 4 */ { 4, s_5_4, -1, 1, 0}, +/* 5 */ { 3, s_5_5, -1, 1, 0}, +/* 6 */ { 3, s_5_6, -1, 1, 0}, +/* 7 */ { 3, s_5_7, -1, 1, 0}, +/* 8 */ { 3, s_5_8, -1, 1, 0}, +/* 9 */ { 2, s_5_9, -1, 1, 0}, +/* 10 */ { 3, s_5_10, -1, 1, 0}, +/* 11 */ { 3, s_5_11, -1, 2, 0}, +/* 12 */ { 2, s_5_12, -1, 1, 0}, +/* 13 */ { 3, s_5_13, -1, 1, 0}, +/* 14 */ { 3, s_5_14, -1, 1, 0}, +/* 15 */ { 3, s_5_15, -1, 1, 0}, +/* 16 */ { 4, s_5_16, 15, 1, 0}, +/* 17 */ { 5, s_5_17, 16, 1, 0}, +/* 18 */ { 2, s_5_18, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1 }; + +static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 }; + +static const symbol s_0[] = { 's', 's' }; +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[] = { '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) { /* 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) { /* 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) { /* 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) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 25 */ + if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; /* substring, line 25 */ + among_var = find_among_b(z, a_0, 4); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 25 */ + switch (among_var) { /* among, line 25 */ + case 1: + { int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_1); /* <-, line 27 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 29 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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) { /* among, line 34 */ + case 1: + { 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_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_test1; + } + { int ret = slice_del(z); /* delete, line 38 */ + if (ret < 0) return ret; + } + { int m_test2 = z->l - z->c; /* test, line 39 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 39 */ + among_var = find_among_b(z, a_1, 13); + if (!(among_var)) return 0; + z->c = z->l - m_test2; + } + switch (among_var) { /* among, line 39 */ + case 1: + { 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; + case 2: + z->ket = z->c; /* [, line 44 */ + if (z->c <= z->lb) return 0; + z->c--; /* next, line 44 */ + z->bra = z->c; /* ], line 44 */ + { int ret = slice_del(z); /* delete, line 44 */ + if (ret < 0) return ret; + } + break; + case 3: + if (z->c != z->I[0]) return 0; /* atmark, line 45 */ + { int m_test3 = z->l - z->c; /* test, line 45 */ + { int ret = r_shortv(z); /* call shortv, line 45 */ + if (ret <= 0) return ret; + } + z->c = z->l - m_test3; + } + { int ret; + { int saved_c = z->c; + ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + break; + } + break; + } + return 1; +} + +static int r_Step_1c(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 52 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 52 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 52 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 52 */ + z->c--; + } +lab0: + z->bra = z->c; /* ], line 52 */ + { /* gopast */ /* grouping v, line 53 */ + int ret = out_grouping_b(z, g_v, 97, 121, 1); + if (ret < 0) return 0; + z->c -= ret; + } + { int ret = slice_from_s(z, 1, s_5); /* <-, line 54 */ + if (ret < 0) return ret; + } + return 1; +} + +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; /* 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); /* call R1, line 58 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 58 */ + case 1: + { 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_7); /* <-, line 60 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_9); /* <-, line 62 */ + if (ret < 0) return ret; + } + break; + case 5: + { 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_11); /* <-, line 64 */ + if (ret < 0) return ret; + } + break; + case 7: + { 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_13); /* <-, line 68 */ + if (ret < 0) return ret; + } + break; + case 9: + { 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, 3, s_15); /* <-, line 72 */ + if (ret < 0) return ret; + } + break; + case 11: + { 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_17); /* <-, line 76 */ + if (ret < 0) return ret; + } + break; + case 13: + { int ret = slice_from_s(z, 3, s_18); /* <-, line 77 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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); /* call R1, line 82 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 82 */ + case 1: + { 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_20); /* <-, line 85 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 87 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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); /* call R2, line 92 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 92 */ + case 1: + { int ret = slice_del(z); /* delete, line 95 */ + if (ret < 0) return ret; + } + break; + case 2: + { int m1 = z->l - z->c; (void)m1; /* or, line 96 */ + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 96 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 96 */ + z->c--; + } + lab0: + { int ret = slice_del(z); /* delete, line 96 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Step_5a(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 101 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 101 */ + z->c--; + z->bra = z->c; /* ], line 101 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 102 */ + { int ret = r_R2(z); /* call R2, line 102 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + { int ret = r_R1(z); /* call R1, line 102 */ + if (ret <= 0) return ret; + } + { int m2 = z->l - z->c; (void)m2; /* not, line 102 */ + { int ret = r_shortv(z); /* call shortv, line 102 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + return 0; + lab2: + z->c = z->l - m2; + } + } +lab0: + { int ret = slice_del(z); /* delete, line 103 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Step_5b(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 107 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 107 */ + z->c--; + z->bra = z->c; /* ], line 107 */ + { int ret = r_R2(z); /* call R2, line 108 */ + if (ret <= 0) return ret; + } + 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) { /* forwardmode */ + z->B[0] = 0; /* unset Y_found, line 115 */ + { int c1 = z->c; /* do, line 116 */ + z->bra = z->c; /* [, line 116 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab0; /* literal, line 116 */ + z->c++; + z->ket = z->c; /* ], 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 */ + lab0: + z->c = c1; + } + { int c2 = z->c; /* do, line 117 */ + while(1) { /* repeat, line 117 */ + int c3 = z->c; + while(1) { /* goto, line 117 */ + int c4 = z->c; + if (in_grouping(z, g_v, 97, 121, 0)) goto lab3; /* grouping v, line 117 */ + z->bra = z->c; /* [, line 117 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 117 */ + z->c++; + z->ket = z->c; /* ], line 117 */ + z->c = c4; + break; + lab3: + z->c = c4; + if (z->c >= z->l) goto lab2; + z->c++; /* goto, 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 */ + continue; + lab2: + z->c = c3; + break; + } + z->c = c2; + } + z->I[0] = z->l; /* $p1 = <integer expression>, line 119 */ + z->I[1] = z->l; /* $p2 = <integer expression>, line 120 */ + { int c5 = z->c; /* do, line 121 */ + { /* gopast */ /* grouping v, line 122 */ + int ret = out_grouping(z, g_v, 97, 121, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + { /* gopast */ /* non v, line 122 */ + int ret = in_grouping(z, g_v, 97, 121, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 122 */ + { /* gopast */ /* grouping v, line 123 */ + int ret = out_grouping(z, g_v, 97, 121, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + { /* gopast */ /* non v, line 123 */ + int ret = in_grouping(z, g_v, 97, 121, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + z->I[1] = z->c; /* setmark p2, line 123 */ + lab4: + z->c = c5; + } + 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); /* 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); /* 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); /* 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); /* 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); /* 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); /* 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); /* 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); /* call Step_5b, line 134 */ + if (ret == 0) goto lab12; + if (ret < 0) return ret; + } + lab12: + z->c = z->l - m13; + } + z->c = z->lb; + { int c14 = z->c; /* do, line 137 */ + if (!(z->B[0])) goto lab13; /* Boolean test Y_found, line 137 */ + while(1) { /* repeat, line 137 */ + int c15 = z->c; + while(1) { /* goto, line 137 */ + int c16 = z->c; + z->bra = z->c; /* [, line 137 */ + 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; + lab15: + z->c = c16; + if (z->c >= z->l) goto lab14; + z->c++; /* goto, line 137 */ + } + { int ret = slice_from_s(z, 1, s_23); /* <-, line 137 */ + if (ret < 0) return ret; + } + continue; + lab14: + z->c = c15; + break; + } + lab13: + z->c = c14; + } + return 1; +} + +extern struct SN_env * porter_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); } + +extern void porter_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c new file mode 100644 index 0000000..674d9c2 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c @@ -0,0 +1,970 @@ +/* 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 portuguese_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_residual_form(struct SN_env * z); +static int r_residual_suffix(struct SN_env * z); +static int r_verb_suffix(struct SN_env * z); +static int r_standard_suffix(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * portuguese_ISO_8859_1_create_env(void); +extern void portuguese_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[1] = { 0xE3 }; +static const symbol s_0_2[1] = { 0xF5 }; + +static const struct among a_0[3] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 1, s_0_1, 0, 1, 0}, +/* 2 */ { 1, s_0_2, 0, 2, 0} +}; + +static const symbol s_1_1[2] = { 'a', '~' }; +static const symbol s_1_2[2] = { 'o', '~' }; + +static const struct among a_1[3] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 2, s_1_1, 0, 1, 0}, +/* 2 */ { 2, s_1_2, 0, 2, 0} +}; + +static const symbol s_2_0[2] = { 'i', 'c' }; +static const symbol s_2_1[2] = { 'a', 'd' }; +static const symbol s_2_2[2] = { 'o', 's' }; +static const symbol s_2_3[2] = { 'i', 'v' }; + +static const struct among a_2[4] = +{ +/* 0 */ { 2, s_2_0, -1, -1, 0}, +/* 1 */ { 2, s_2_1, -1, -1, 0}, +/* 2 */ { 2, s_2_2, -1, -1, 0}, +/* 3 */ { 2, s_2_3, -1, 1, 0} +}; + +static const symbol s_3_0[4] = { 'a', 'n', 't', 'e' }; +static const symbol s_3_1[4] = { 'a', 'v', 'e', 'l' }; +static const symbol s_3_2[4] = { 0xED, 'v', 'e', 'l' }; + +static const struct among a_3[3] = +{ +/* 0 */ { 4, s_3_0, -1, 1, 0}, +/* 1 */ { 4, s_3_1, -1, 1, 0}, +/* 2 */ { 4, s_3_2, -1, 1, 0} +}; + +static const symbol s_4_0[2] = { 'i', 'c' }; +static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_4_2[2] = { 'i', 'v' }; + +static const struct among a_4[3] = +{ +/* 0 */ { 2, s_4_0, -1, 1, 0}, +/* 1 */ { 4, s_4_1, -1, 1, 0}, +/* 2 */ { 2, s_4_2, -1, 1, 0} +}; + +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[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[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[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[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' }; +static const symbol s_5_42[7] = { 'a', 'm', 'e', 'n', 't', 'o', 's' }; +static const symbol s_5_43[7] = { 'i', 'm', 'e', 'n', 't', 'o', 's' }; +static const symbol s_5_44[4] = { 'i', 'v', 'o', 's' }; + +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 */ { 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 */ { 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 */ { 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 */ { 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 */ { 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}, +/* 42 */ { 7, s_5_42, -1, 1, 0}, +/* 43 */ { 7, s_5_43, -1, 1, 0}, +/* 44 */ { 4, s_5_44, -1, 8, 0} +}; + +static const symbol s_6_0[3] = { 'a', 'd', 'a' }; +static const symbol s_6_1[3] = { 'i', 'd', 'a' }; +static const symbol s_6_2[2] = { 'i', 'a' }; +static const symbol s_6_3[4] = { 'a', 'r', 'i', 'a' }; +static const symbol s_6_4[4] = { 'e', 'r', 'i', 'a' }; +static const symbol s_6_5[4] = { 'i', 'r', 'i', 'a' }; +static const symbol s_6_6[3] = { 'a', 'r', 'a' }; +static const symbol s_6_7[3] = { 'e', 'r', 'a' }; +static const symbol s_6_8[3] = { 'i', 'r', 'a' }; +static const symbol s_6_9[3] = { 'a', 'v', 'a' }; +static const symbol s_6_10[4] = { 'a', 's', 's', 'e' }; +static const symbol s_6_11[4] = { 'e', 's', 's', 'e' }; +static const symbol s_6_12[4] = { 'i', 's', 's', 'e' }; +static const symbol s_6_13[4] = { 'a', 's', 't', 'e' }; +static const symbol s_6_14[4] = { 'e', 's', 't', 'e' }; +static const symbol s_6_15[4] = { 'i', 's', 't', 'e' }; +static const symbol s_6_16[2] = { 'e', 'i' }; +static const symbol s_6_17[4] = { 'a', 'r', 'e', 'i' }; +static const symbol s_6_18[4] = { 'e', 'r', 'e', 'i' }; +static const symbol s_6_19[4] = { 'i', 'r', 'e', 'i' }; +static const symbol s_6_20[2] = { 'a', 'm' }; +static const symbol s_6_21[3] = { 'i', 'a', 'm' }; +static const symbol s_6_22[5] = { 'a', 'r', 'i', 'a', 'm' }; +static const symbol s_6_23[5] = { 'e', 'r', 'i', 'a', 'm' }; +static const symbol s_6_24[5] = { 'i', 'r', 'i', 'a', 'm' }; +static const symbol s_6_25[4] = { 'a', 'r', 'a', 'm' }; +static const symbol s_6_26[4] = { 'e', 'r', 'a', 'm' }; +static const symbol s_6_27[4] = { 'i', 'r', 'a', 'm' }; +static const symbol s_6_28[4] = { 'a', 'v', 'a', 'm' }; +static const symbol s_6_29[2] = { 'e', 'm' }; +static const symbol s_6_30[4] = { 'a', 'r', 'e', 'm' }; +static const symbol s_6_31[4] = { 'e', 'r', 'e', 'm' }; +static const symbol s_6_32[4] = { 'i', 'r', 'e', 'm' }; +static const symbol s_6_33[5] = { 'a', 's', 's', 'e', 'm' }; +static const symbol s_6_34[5] = { 'e', 's', 's', 'e', 'm' }; +static const symbol s_6_35[5] = { 'i', 's', 's', 'e', 'm' }; +static const symbol s_6_36[3] = { 'a', 'd', 'o' }; +static const symbol s_6_37[3] = { 'i', 'd', 'o' }; +static const symbol s_6_38[4] = { 'a', 'n', 'd', 'o' }; +static const symbol s_6_39[4] = { 'e', 'n', 'd', 'o' }; +static const symbol s_6_40[4] = { 'i', 'n', 'd', 'o' }; +static const symbol s_6_41[5] = { 'a', 'r', 'a', '~', 'o' }; +static const symbol s_6_42[5] = { 'e', 'r', 'a', '~', 'o' }; +static const symbol s_6_43[5] = { 'i', 'r', 'a', '~', 'o' }; +static const symbol s_6_44[2] = { 'a', 'r' }; +static const symbol s_6_45[2] = { 'e', 'r' }; +static const symbol s_6_46[2] = { 'i', 'r' }; +static const symbol s_6_47[2] = { 'a', 's' }; +static const symbol s_6_48[4] = { 'a', 'd', 'a', 's' }; +static const symbol s_6_49[4] = { 'i', 'd', 'a', 's' }; +static const symbol s_6_50[3] = { 'i', 'a', 's' }; +static const symbol s_6_51[5] = { 'a', 'r', 'i', 'a', 's' }; +static const symbol s_6_52[5] = { 'e', 'r', 'i', 'a', 's' }; +static const symbol s_6_53[5] = { 'i', 'r', 'i', 'a', 's' }; +static const symbol s_6_54[4] = { 'a', 'r', 'a', 's' }; +static const symbol s_6_55[4] = { 'e', 'r', 'a', 's' }; +static const symbol s_6_56[4] = { 'i', 'r', 'a', 's' }; +static const symbol s_6_57[4] = { 'a', 'v', 'a', 's' }; +static const symbol s_6_58[2] = { 'e', 's' }; +static const symbol s_6_59[5] = { 'a', 'r', 'd', 'e', 's' }; +static const symbol s_6_60[5] = { 'e', 'r', 'd', 'e', 's' }; +static const symbol s_6_61[5] = { 'i', 'r', 'd', 'e', 's' }; +static const symbol s_6_62[4] = { 'a', 'r', 'e', 's' }; +static const symbol s_6_63[4] = { 'e', 'r', 'e', 's' }; +static const symbol s_6_64[4] = { 'i', 'r', 'e', 's' }; +static const symbol s_6_65[5] = { 'a', 's', 's', 'e', 's' }; +static const symbol s_6_66[5] = { 'e', 's', 's', 'e', 's' }; +static const symbol s_6_67[5] = { 'i', 's', 's', 'e', 's' }; +static const symbol s_6_68[5] = { 'a', 's', 't', 'e', 's' }; +static const symbol s_6_69[5] = { 'e', 's', 't', 'e', 's' }; +static const symbol s_6_70[5] = { 'i', 's', 't', 'e', 's' }; +static const symbol s_6_71[2] = { 'i', 's' }; +static const symbol s_6_72[3] = { 'a', 'i', 's' }; +static const symbol s_6_73[3] = { 'e', 'i', 's' }; +static const symbol s_6_74[5] = { 'a', 'r', 'e', 'i', 's' }; +static const symbol s_6_75[5] = { 'e', 'r', 'e', 'i', 's' }; +static const symbol s_6_76[5] = { 'i', 'r', 'e', 'i', 's' }; +static const symbol s_6_77[5] = { 0xE1, 'r', 'e', 'i', 's' }; +static const symbol s_6_78[5] = { 0xE9, 'r', 'e', 'i', 's' }; +static const symbol s_6_79[5] = { 0xED, 'r', 'e', 'i', 's' }; +static const symbol s_6_80[6] = { 0xE1, 's', 's', 'e', 'i', 's' }; +static const symbol s_6_81[6] = { 0xE9, 's', 's', 'e', 'i', 's' }; +static const symbol s_6_82[6] = { 0xED, 's', 's', 'e', 'i', 's' }; +static const symbol s_6_83[5] = { 0xE1, 'v', 'e', 'i', 's' }; +static const symbol s_6_84[4] = { 0xED, 'e', 'i', 's' }; +static const symbol s_6_85[6] = { 'a', 'r', 0xED, 'e', 'i', 's' }; +static const symbol s_6_86[6] = { 'e', 'r', 0xED, 'e', 'i', 's' }; +static const symbol s_6_87[6] = { 'i', 'r', 0xED, 'e', 'i', 's' }; +static const symbol s_6_88[4] = { 'a', 'd', 'o', 's' }; +static const symbol s_6_89[4] = { 'i', 'd', 'o', 's' }; +static const symbol s_6_90[4] = { 'a', 'm', 'o', 's' }; +static const symbol s_6_91[6] = { 0xE1, 'r', 'a', 'm', 'o', 's' }; +static const symbol s_6_92[6] = { 0xE9, 'r', 'a', 'm', 'o', 's' }; +static const symbol s_6_93[6] = { 0xED, 'r', 'a', 'm', 'o', 's' }; +static const symbol s_6_94[6] = { 0xE1, 'v', 'a', 'm', 'o', 's' }; +static const symbol s_6_95[5] = { 0xED, 'a', 'm', 'o', 's' }; +static const symbol s_6_96[7] = { 'a', 'r', 0xED, 'a', 'm', 'o', 's' }; +static const symbol s_6_97[7] = { 'e', 'r', 0xED, 'a', 'm', 'o', 's' }; +static const symbol s_6_98[7] = { 'i', 'r', 0xED, 'a', 'm', 'o', 's' }; +static const symbol s_6_99[4] = { 'e', 'm', 'o', 's' }; +static const symbol s_6_100[6] = { 'a', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_6_101[6] = { 'e', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_6_102[6] = { 'i', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_6_103[7] = { 0xE1, 's', 's', 'e', 'm', 'o', 's' }; +static const symbol s_6_104[7] = { 0xEA, 's', 's', 'e', 'm', 'o', 's' }; +static const symbol s_6_105[7] = { 0xED, 's', 's', 'e', 'm', 'o', 's' }; +static const symbol s_6_106[4] = { 'i', 'm', 'o', 's' }; +static const symbol s_6_107[5] = { 'a', 'r', 'm', 'o', 's' }; +static const symbol s_6_108[5] = { 'e', 'r', 'm', 'o', 's' }; +static const symbol s_6_109[5] = { 'i', 'r', 'm', 'o', 's' }; +static const symbol s_6_110[4] = { 0xE1, 'm', 'o', 's' }; +static const symbol s_6_111[4] = { 'a', 'r', 0xE1, 's' }; +static const symbol s_6_112[4] = { 'e', 'r', 0xE1, 's' }; +static const symbol s_6_113[4] = { 'i', 'r', 0xE1, 's' }; +static const symbol s_6_114[2] = { 'e', 'u' }; +static const symbol s_6_115[2] = { 'i', 'u' }; +static const symbol s_6_116[2] = { 'o', 'u' }; +static const symbol s_6_117[3] = { 'a', 'r', 0xE1 }; +static const symbol s_6_118[3] = { 'e', 'r', 0xE1 }; +static const symbol s_6_119[3] = { 'i', 'r', 0xE1 }; + +static const struct among a_6[120] = +{ +/* 0 */ { 3, s_6_0, -1, 1, 0}, +/* 1 */ { 3, s_6_1, -1, 1, 0}, +/* 2 */ { 2, s_6_2, -1, 1, 0}, +/* 3 */ { 4, s_6_3, 2, 1, 0}, +/* 4 */ { 4, s_6_4, 2, 1, 0}, +/* 5 */ { 4, s_6_5, 2, 1, 0}, +/* 6 */ { 3, s_6_6, -1, 1, 0}, +/* 7 */ { 3, s_6_7, -1, 1, 0}, +/* 8 */ { 3, s_6_8, -1, 1, 0}, +/* 9 */ { 3, s_6_9, -1, 1, 0}, +/* 10 */ { 4, s_6_10, -1, 1, 0}, +/* 11 */ { 4, s_6_11, -1, 1, 0}, +/* 12 */ { 4, s_6_12, -1, 1, 0}, +/* 13 */ { 4, s_6_13, -1, 1, 0}, +/* 14 */ { 4, s_6_14, -1, 1, 0}, +/* 15 */ { 4, s_6_15, -1, 1, 0}, +/* 16 */ { 2, s_6_16, -1, 1, 0}, +/* 17 */ { 4, s_6_17, 16, 1, 0}, +/* 18 */ { 4, s_6_18, 16, 1, 0}, +/* 19 */ { 4, s_6_19, 16, 1, 0}, +/* 20 */ { 2, s_6_20, -1, 1, 0}, +/* 21 */ { 3, s_6_21, 20, 1, 0}, +/* 22 */ { 5, s_6_22, 21, 1, 0}, +/* 23 */ { 5, s_6_23, 21, 1, 0}, +/* 24 */ { 5, s_6_24, 21, 1, 0}, +/* 25 */ { 4, s_6_25, 20, 1, 0}, +/* 26 */ { 4, s_6_26, 20, 1, 0}, +/* 27 */ { 4, s_6_27, 20, 1, 0}, +/* 28 */ { 4, s_6_28, 20, 1, 0}, +/* 29 */ { 2, s_6_29, -1, 1, 0}, +/* 30 */ { 4, s_6_30, 29, 1, 0}, +/* 31 */ { 4, s_6_31, 29, 1, 0}, +/* 32 */ { 4, s_6_32, 29, 1, 0}, +/* 33 */ { 5, s_6_33, 29, 1, 0}, +/* 34 */ { 5, s_6_34, 29, 1, 0}, +/* 35 */ { 5, s_6_35, 29, 1, 0}, +/* 36 */ { 3, s_6_36, -1, 1, 0}, +/* 37 */ { 3, s_6_37, -1, 1, 0}, +/* 38 */ { 4, s_6_38, -1, 1, 0}, +/* 39 */ { 4, s_6_39, -1, 1, 0}, +/* 40 */ { 4, s_6_40, -1, 1, 0}, +/* 41 */ { 5, s_6_41, -1, 1, 0}, +/* 42 */ { 5, s_6_42, -1, 1, 0}, +/* 43 */ { 5, s_6_43, -1, 1, 0}, +/* 44 */ { 2, s_6_44, -1, 1, 0}, +/* 45 */ { 2, s_6_45, -1, 1, 0}, +/* 46 */ { 2, s_6_46, -1, 1, 0}, +/* 47 */ { 2, s_6_47, -1, 1, 0}, +/* 48 */ { 4, s_6_48, 47, 1, 0}, +/* 49 */ { 4, s_6_49, 47, 1, 0}, +/* 50 */ { 3, s_6_50, 47, 1, 0}, +/* 51 */ { 5, s_6_51, 50, 1, 0}, +/* 52 */ { 5, s_6_52, 50, 1, 0}, +/* 53 */ { 5, s_6_53, 50, 1, 0}, +/* 54 */ { 4, s_6_54, 47, 1, 0}, +/* 55 */ { 4, s_6_55, 47, 1, 0}, +/* 56 */ { 4, s_6_56, 47, 1, 0}, +/* 57 */ { 4, s_6_57, 47, 1, 0}, +/* 58 */ { 2, s_6_58, -1, 1, 0}, +/* 59 */ { 5, s_6_59, 58, 1, 0}, +/* 60 */ { 5, s_6_60, 58, 1, 0}, +/* 61 */ { 5, s_6_61, 58, 1, 0}, +/* 62 */ { 4, s_6_62, 58, 1, 0}, +/* 63 */ { 4, s_6_63, 58, 1, 0}, +/* 64 */ { 4, s_6_64, 58, 1, 0}, +/* 65 */ { 5, s_6_65, 58, 1, 0}, +/* 66 */ { 5, s_6_66, 58, 1, 0}, +/* 67 */ { 5, s_6_67, 58, 1, 0}, +/* 68 */ { 5, s_6_68, 58, 1, 0}, +/* 69 */ { 5, s_6_69, 58, 1, 0}, +/* 70 */ { 5, s_6_70, 58, 1, 0}, +/* 71 */ { 2, s_6_71, -1, 1, 0}, +/* 72 */ { 3, s_6_72, 71, 1, 0}, +/* 73 */ { 3, s_6_73, 71, 1, 0}, +/* 74 */ { 5, s_6_74, 73, 1, 0}, +/* 75 */ { 5, s_6_75, 73, 1, 0}, +/* 76 */ { 5, s_6_76, 73, 1, 0}, +/* 77 */ { 5, s_6_77, 73, 1, 0}, +/* 78 */ { 5, s_6_78, 73, 1, 0}, +/* 79 */ { 5, s_6_79, 73, 1, 0}, +/* 80 */ { 6, s_6_80, 73, 1, 0}, +/* 81 */ { 6, s_6_81, 73, 1, 0}, +/* 82 */ { 6, s_6_82, 73, 1, 0}, +/* 83 */ { 5, s_6_83, 73, 1, 0}, +/* 84 */ { 4, s_6_84, 73, 1, 0}, +/* 85 */ { 6, s_6_85, 84, 1, 0}, +/* 86 */ { 6, s_6_86, 84, 1, 0}, +/* 87 */ { 6, s_6_87, 84, 1, 0}, +/* 88 */ { 4, s_6_88, -1, 1, 0}, +/* 89 */ { 4, s_6_89, -1, 1, 0}, +/* 90 */ { 4, s_6_90, -1, 1, 0}, +/* 91 */ { 6, s_6_91, 90, 1, 0}, +/* 92 */ { 6, s_6_92, 90, 1, 0}, +/* 93 */ { 6, s_6_93, 90, 1, 0}, +/* 94 */ { 6, s_6_94, 90, 1, 0}, +/* 95 */ { 5, s_6_95, 90, 1, 0}, +/* 96 */ { 7, s_6_96, 95, 1, 0}, +/* 97 */ { 7, s_6_97, 95, 1, 0}, +/* 98 */ { 7, s_6_98, 95, 1, 0}, +/* 99 */ { 4, s_6_99, -1, 1, 0}, +/*100 */ { 6, s_6_100, 99, 1, 0}, +/*101 */ { 6, s_6_101, 99, 1, 0}, +/*102 */ { 6, s_6_102, 99, 1, 0}, +/*103 */ { 7, s_6_103, 99, 1, 0}, +/*104 */ { 7, s_6_104, 99, 1, 0}, +/*105 */ { 7, s_6_105, 99, 1, 0}, +/*106 */ { 4, s_6_106, -1, 1, 0}, +/*107 */ { 5, s_6_107, -1, 1, 0}, +/*108 */ { 5, s_6_108, -1, 1, 0}, +/*109 */ { 5, s_6_109, -1, 1, 0}, +/*110 */ { 4, s_6_110, -1, 1, 0}, +/*111 */ { 4, s_6_111, -1, 1, 0}, +/*112 */ { 4, s_6_112, -1, 1, 0}, +/*113 */ { 4, s_6_113, -1, 1, 0}, +/*114 */ { 2, s_6_114, -1, 1, 0}, +/*115 */ { 2, s_6_115, -1, 1, 0}, +/*116 */ { 2, s_6_116, -1, 1, 0}, +/*117 */ { 3, s_6_117, -1, 1, 0}, +/*118 */ { 3, s_6_118, -1, 1, 0}, +/*119 */ { 3, s_6_119, -1, 1, 0} +}; + +static const symbol s_7_0[1] = { 'a' }; +static const symbol s_7_1[1] = { 'i' }; +static const symbol s_7_2[1] = { 'o' }; +static const symbol s_7_3[2] = { 'o', 's' }; +static const symbol s_7_4[1] = { 0xE1 }; +static const symbol s_7_5[1] = { 0xED }; +static const symbol s_7_6[1] = { 0xF3 }; + +static const struct among a_7[7] = +{ +/* 0 */ { 1, s_7_0, -1, 1, 0}, +/* 1 */ { 1, s_7_1, -1, 1, 0}, +/* 2 */ { 1, s_7_2, -1, 1, 0}, +/* 3 */ { 2, s_7_3, -1, 1, 0}, +/* 4 */ { 1, s_7_4, -1, 1, 0}, +/* 5 */ { 1, s_7_5, -1, 1, 0}, +/* 6 */ { 1, s_7_6, -1, 1, 0} +}; + +static const symbol s_8_0[1] = { 'e' }; +static const symbol s_8_1[1] = { 0xE7 }; +static const symbol s_8_2[1] = { 0xE9 }; +static const symbol s_8_3[1] = { 0xEA }; + +static const struct among a_8[4] = +{ +/* 0 */ { 1, s_8_0, -1, 1, 0}, +/* 1 */ { 1, s_8_1, -1, 2, 0}, +/* 2 */ { 1, s_8_2, -1, 1, 0}, +/* 3 */ { 1, s_8_3, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 }; + +static const symbol s_0[] = { 'a', '~' }; +static const symbol s_1[] = { 'o', '~' }; +static const symbol s_2[] = { 0xE3 }; +static const symbol s_3[] = { 0xF5 }; +static const symbol s_4[] = { 'l', 'o', 'g' }; +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[] = { 'i', 'r' }; +static const symbol s_10[] = { 'c' }; + +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 /* 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) { /* among, line 37 */ + case 1: + { int ret = slice_from_s(z, 2, s_0); /* <-, line 38 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 2, s_1); /* <-, line 39 */ + if (ret < 0) return ret; + } + break; + case 3: + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 40 */ + break; + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +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; /* grouping v, line 51 */ + { int c3 = z->c; /* or, line 51 */ + 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; + z->c += ret; + } + goto lab3; + lab4: + z->c = c3; + 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; + z->c += ret; + } + } + lab3: + goto lab1; + lab2: + z->c = c2; + 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; /* non v, line 53 */ + { /* gopast */ /* grouping v, line 53 */ + int ret = out_grouping(z, g_v, 97, 250, 1); + if (ret < 0) goto lab6; + z->c += ret; + } + goto lab5; + lab6: + z->c = c4; + 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 */ + } + lab5: + ; + } + lab1: + z->I[0] = z->c; /* setmark pV, line 54 */ + lab0: + z->c = c1; + } + { int c5 = z->c; /* do, line 56 */ + { /* gopast */ /* grouping v, line 57 */ + int ret = out_grouping(z, g_v, 97, 250, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 57 */ + int ret = in_grouping(z, g_v, 97, 250, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[1] = z->c; /* setmark p1, line 57 */ + { /* gopast */ /* grouping v, line 58 */ + int ret = out_grouping(z, g_v, 97, 250, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 58 */ + int ret = in_grouping(z, g_v, 97, 250, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[2] = z->c; /* setmark p2, line 58 */ + lab7: + z->c = c5; + } + return 1; +} + +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 /* 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) { /* among, line 63 */ + case 1: + { int ret = slice_from_s(z, 1, s_2); /* <-, line 64 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_3); /* <-, line 65 */ + if (ret < 0) return ret; + } + break; + case 3: + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 66 */ + break; + } + continue; + lab0: + z->c = c1; + 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 72 */ + return 1; +} + +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) { /* 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) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, 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) { /* among, line 77 */ + case 1: + { 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); /* 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); /* 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); /* 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); /* call R1, line 110 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 110 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* try, line 111 */ + z->ket = z->c; /* [, line 112 */ + if (z->c - 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); /* 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) { /* among, line 112 */ + case 1: + z->ket = z->c; /* [, line 113 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + break; + } + lab0: + ; + } + break; + case 6: + { 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 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 - 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 */ + { 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); /* call R2, line 134 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 134 */ + if (ret < 0) return ret; + } + { 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 - 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 */ + { 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); /* call R2, line 146 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 146 */ + if (ret < 0) return ret; + } + { 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 - m4; goto lab3; } /* literal, line 148 */ + z->bra = z->c; /* ], 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 */ + if (ret < 0) return ret; + } + lab3: + ; + } + break; + case 9: + { int ret = r_RV(z); /* call RV, line 153 */ + if (ret <= 0) return ret; + } + 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; + } + return 1; +} + +static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 159 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 160 */ + if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; } /* substring, line 160 */ + z->bra = z->c; /* ], line 160 */ + { int ret = slice_del(z); /* delete, line 179 */ + if (ret < 0) return ret; + } + z->lb = mlimit1; + } + return 1; +} + +static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 184 */ + if (!(find_among_b(z, a_7, 7))) return 0; /* substring, line 184 */ + z->bra = z->c; /* ], line 184 */ + { 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) { /* 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) { /* among, line 192 */ + case 1: + { 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 (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_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 (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_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); /* 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_10); /* <-, line 196 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, 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; + } + /* 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 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 - 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 - m4; + { int m6 = z->l - z->c; (void)m6; /* do, line 207 */ + z->ket = z->c; /* [, line 207 */ + 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_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); /* 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 - m6; + } + } + goto lab3; + lab4: + 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 - m2; + } + { int m8 = z->l - z->c; (void)m8; /* do, line 211 */ + { int ret = r_residual_form(z); /* call residual_form, line 211 */ + if (ret == 0) goto lab8; + if (ret < 0) return ret; + } + lab8: + z->c = z->l - m8; + } + z->c = z->lb; + { int c9 = z->c; /* do, line 213 */ + { int ret = r_postlude(z); /* call postlude, line 213 */ + if (ret == 0) goto lab9; + if (ret < 0) return ret; + } + lab9: + z->c = c9; + } + return 1; +} + +extern struct SN_env * portuguese_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } + +extern void portuguese_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c new file mode 100644 index 0000000..c2f101d --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c @@ -0,0 +1,1050 @@ +/* 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 spanish_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_residual_suffix(struct SN_env * z); +static int r_verb_suffix(struct SN_env * z); +static int r_y_verb_suffix(struct SN_env * z); +static int r_standard_suffix(struct SN_env * z); +static int r_attached_pronoun(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * spanish_ISO_8859_1_create_env(void); +extern void spanish_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[1] = { 0xE1 }; +static const symbol s_0_2[1] = { 0xE9 }; +static const symbol s_0_3[1] = { 0xED }; +static const symbol s_0_4[1] = { 0xF3 }; +static const symbol s_0_5[1] = { 0xFA }; + +static const struct among a_0[6] = +{ +/* 0 */ { 0, 0, -1, 6, 0}, +/* 1 */ { 1, s_0_1, 0, 1, 0}, +/* 2 */ { 1, s_0_2, 0, 2, 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} +}; + +static const symbol s_1_0[2] = { 'l', 'a' }; +static const symbol s_1_1[4] = { 's', 'e', 'l', 'a' }; +static const symbol s_1_2[2] = { 'l', 'e' }; +static const symbol s_1_3[2] = { 'm', 'e' }; +static const symbol s_1_4[2] = { 's', 'e' }; +static const symbol s_1_5[2] = { 'l', 'o' }; +static const symbol s_1_6[4] = { 's', 'e', 'l', 'o' }; +static const symbol s_1_7[3] = { 'l', 'a', 's' }; +static const symbol s_1_8[5] = { 's', 'e', 'l', 'a', 's' }; +static const symbol s_1_9[3] = { 'l', 'e', 's' }; +static const symbol s_1_10[3] = { 'l', 'o', 's' }; +static const symbol s_1_11[5] = { 's', 'e', 'l', 'o', 's' }; +static const symbol s_1_12[3] = { 'n', 'o', 's' }; + +static const struct among a_1[13] = +{ +/* 0 */ { 2, s_1_0, -1, -1, 0}, +/* 1 */ { 4, s_1_1, 0, -1, 0}, +/* 2 */ { 2, s_1_2, -1, -1, 0}, +/* 3 */ { 2, s_1_3, -1, -1, 0}, +/* 4 */ { 2, s_1_4, -1, -1, 0}, +/* 5 */ { 2, s_1_5, -1, -1, 0}, +/* 6 */ { 4, s_1_6, 5, -1, 0}, +/* 7 */ { 3, s_1_7, -1, -1, 0}, +/* 8 */ { 5, s_1_8, 7, -1, 0}, +/* 9 */ { 3, s_1_9, -1, -1, 0}, +/* 10 */ { 3, s_1_10, -1, -1, 0}, +/* 11 */ { 5, s_1_11, 10, -1, 0}, +/* 12 */ { 3, s_1_12, -1, -1, 0} +}; + +static const symbol s_2_0[4] = { 'a', 'n', 'd', 'o' }; +static const symbol s_2_1[5] = { 'i', 'e', 'n', 'd', 'o' }; +static const symbol s_2_2[5] = { 'y', 'e', 'n', 'd', 'o' }; +static const symbol s_2_3[4] = { 0xE1, 'n', 'd', 'o' }; +static const symbol s_2_4[5] = { 'i', 0xE9, 'n', 'd', 'o' }; +static const symbol s_2_5[2] = { 'a', 'r' }; +static const symbol s_2_6[2] = { 'e', 'r' }; +static const symbol s_2_7[2] = { 'i', 'r' }; +static const symbol s_2_8[2] = { 0xE1, 'r' }; +static const symbol s_2_9[2] = { 0xE9, 'r' }; +static const symbol s_2_10[2] = { 0xED, 'r' }; + +static const struct among a_2[11] = +{ +/* 0 */ { 4, s_2_0, -1, 6, 0}, +/* 1 */ { 5, s_2_1, -1, 6, 0}, +/* 2 */ { 5, s_2_2, -1, 7, 0}, +/* 3 */ { 4, s_2_3, -1, 2, 0}, +/* 4 */ { 5, s_2_4, -1, 1, 0}, +/* 5 */ { 2, s_2_5, -1, 6, 0}, +/* 6 */ { 2, s_2_6, -1, 6, 0}, +/* 7 */ { 2, s_2_7, -1, 6, 0}, +/* 8 */ { 2, s_2_8, -1, 3, 0}, +/* 9 */ { 2, s_2_9, -1, 4, 0}, +/* 10 */ { 2, s_2_10, -1, 5, 0} +}; + +static const symbol s_3_0[2] = { 'i', 'c' }; +static const symbol s_3_1[2] = { 'a', 'd' }; +static const symbol s_3_2[2] = { 'o', 's' }; +static const symbol s_3_3[2] = { 'i', 'v' }; + +static const struct among a_3[4] = +{ +/* 0 */ { 2, s_3_0, -1, -1, 0}, +/* 1 */ { 2, s_3_1, -1, -1, 0}, +/* 2 */ { 2, s_3_2, -1, -1, 0}, +/* 3 */ { 2, s_3_3, -1, 1, 0} +}; + +static const symbol s_4_0[4] = { 'a', 'b', 'l', 'e' }; +static const symbol s_4_1[4] = { 'i', 'b', 'l', 'e' }; +static const symbol s_4_2[4] = { 'a', 'n', 't', 'e' }; + +static const struct among a_4[3] = +{ +/* 0 */ { 4, s_4_0, -1, 1, 0}, +/* 1 */ { 4, s_4_1, -1, 1, 0}, +/* 2 */ { 4, s_4_2, -1, 1, 0} +}; + +static const symbol s_5_0[2] = { 'i', 'c' }; +static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_5_2[2] = { 'i', 'v' }; + +static const struct among a_5[3] = +{ +/* 0 */ { 2, s_5_0, -1, 1, 0}, +/* 1 */ { 4, s_5_1, -1, 1, 0}, +/* 2 */ { 2, s_5_2, -1, 1, 0} +}; + +static const symbol s_6_0[3] = { 'i', 'c', 'a' }; +static const symbol s_6_1[5] = { 'a', 'n', 'c', 'i', 'a' }; +static const symbol s_6_2[5] = { 'e', 'n', 'c', 'i', 'a' }; +static const symbol s_6_3[5] = { 'a', 'd', 'o', 'r', 'a' }; +static const symbol s_6_4[3] = { 'o', 's', 'a' }; +static const symbol s_6_5[4] = { 'i', 's', 't', 'a' }; +static const symbol s_6_6[3] = { 'i', 'v', 'a' }; +static const symbol s_6_7[4] = { 'a', 'n', 'z', 'a' }; +static const symbol s_6_8[5] = { 'l', 'o', 'g', 0xED, 'a' }; +static const symbol s_6_9[4] = { 'i', 'd', 'a', 'd' }; +static const symbol s_6_10[4] = { 'a', 'b', 'l', 'e' }; +static const symbol s_6_11[4] = { 'i', 'b', 'l', 'e' }; +static const symbol s_6_12[4] = { 'a', 'n', 't', 'e' }; +static const symbol s_6_13[5] = { 'm', 'e', 'n', 't', 'e' }; +static const symbol s_6_14[6] = { 'a', 'm', 'e', 'n', 't', 'e' }; +static const symbol s_6_15[5] = { 'a', 'c', 'i', 0xF3, 'n' }; +static const symbol s_6_16[5] = { 'u', 'c', 'i', 0xF3, 'n' }; +static const symbol s_6_17[3] = { 'i', 'c', 'o' }; +static const symbol s_6_18[4] = { 'i', 's', 'm', 'o' }; +static const symbol s_6_19[3] = { 'o', 's', 'o' }; +static const symbol s_6_20[7] = { 'a', 'm', 'i', 'e', 'n', 't', 'o' }; +static const symbol s_6_21[7] = { 'i', 'm', 'i', 'e', 'n', 't', 'o' }; +static const symbol s_6_22[3] = { 'i', 'v', 'o' }; +static const symbol s_6_23[4] = { 'a', 'd', 'o', 'r' }; +static const symbol s_6_24[4] = { 'i', 'c', 'a', 's' }; +static const symbol s_6_25[6] = { 'a', 'n', 'c', 'i', 'a', 's' }; +static const symbol s_6_26[6] = { 'e', 'n', 'c', 'i', 'a', 's' }; +static const symbol s_6_27[6] = { 'a', 'd', 'o', 'r', 'a', 's' }; +static const symbol s_6_28[4] = { 'o', 's', 'a', 's' }; +static const symbol s_6_29[5] = { 'i', 's', 't', 'a', 's' }; +static const symbol s_6_30[4] = { 'i', 'v', 'a', 's' }; +static const symbol s_6_31[5] = { 'a', 'n', 'z', 'a', 's' }; +static const symbol s_6_32[6] = { 'l', 'o', 'g', 0xED, 'a', 's' }; +static const symbol s_6_33[6] = { 'i', 'd', 'a', 'd', 'e', 's' }; +static const symbol s_6_34[5] = { 'a', 'b', 'l', 'e', 's' }; +static const symbol s_6_35[5] = { 'i', 'b', 'l', 'e', 's' }; +static const symbol s_6_36[7] = { 'a', 'c', 'i', 'o', 'n', 'e', 's' }; +static const symbol s_6_37[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' }; +static const symbol s_6_38[6] = { 'a', 'd', 'o', 'r', 'e', 's' }; +static const symbol s_6_39[5] = { 'a', 'n', 't', 'e', 's' }; +static const symbol s_6_40[4] = { 'i', 'c', 'o', 's' }; +static const symbol s_6_41[5] = { 'i', 's', 'm', 'o', 's' }; +static const symbol s_6_42[4] = { 'o', 's', 'o', 's' }; +static const symbol s_6_43[8] = { 'a', 'm', 'i', 'e', 'n', 't', 'o', 's' }; +static const symbol s_6_44[8] = { 'i', 'm', 'i', 'e', 'n', 't', 'o', 's' }; +static const symbol s_6_45[4] = { 'i', 'v', 'o', 's' }; + +static const struct among a_6[46] = +{ +/* 0 */ { 3, s_6_0, -1, 1, 0}, +/* 1 */ { 5, s_6_1, -1, 2, 0}, +/* 2 */ { 5, s_6_2, -1, 5, 0}, +/* 3 */ { 5, s_6_3, -1, 2, 0}, +/* 4 */ { 3, s_6_4, -1, 1, 0}, +/* 5 */ { 4, s_6_5, -1, 1, 0}, +/* 6 */ { 3, s_6_6, -1, 9, 0}, +/* 7 */ { 4, s_6_7, -1, 1, 0}, +/* 8 */ { 5, s_6_8, -1, 3, 0}, +/* 9 */ { 4, s_6_9, -1, 8, 0}, +/* 10 */ { 4, s_6_10, -1, 1, 0}, +/* 11 */ { 4, s_6_11, -1, 1, 0}, +/* 12 */ { 4, s_6_12, -1, 2, 0}, +/* 13 */ { 5, s_6_13, -1, 7, 0}, +/* 14 */ { 6, s_6_14, 13, 6, 0}, +/* 15 */ { 5, s_6_15, -1, 2, 0}, +/* 16 */ { 5, s_6_16, -1, 4, 0}, +/* 17 */ { 3, s_6_17, -1, 1, 0}, +/* 18 */ { 4, s_6_18, -1, 1, 0}, +/* 19 */ { 3, s_6_19, -1, 1, 0}, +/* 20 */ { 7, s_6_20, -1, 1, 0}, +/* 21 */ { 7, s_6_21, -1, 1, 0}, +/* 22 */ { 3, s_6_22, -1, 9, 0}, +/* 23 */ { 4, s_6_23, -1, 2, 0}, +/* 24 */ { 4, s_6_24, -1, 1, 0}, +/* 25 */ { 6, s_6_25, -1, 2, 0}, +/* 26 */ { 6, s_6_26, -1, 5, 0}, +/* 27 */ { 6, s_6_27, -1, 2, 0}, +/* 28 */ { 4, s_6_28, -1, 1, 0}, +/* 29 */ { 5, s_6_29, -1, 1, 0}, +/* 30 */ { 4, s_6_30, -1, 9, 0}, +/* 31 */ { 5, s_6_31, -1, 1, 0}, +/* 32 */ { 6, s_6_32, -1, 3, 0}, +/* 33 */ { 6, s_6_33, -1, 8, 0}, +/* 34 */ { 5, s_6_34, -1, 1, 0}, +/* 35 */ { 5, s_6_35, -1, 1, 0}, +/* 36 */ { 7, s_6_36, -1, 2, 0}, +/* 37 */ { 7, s_6_37, -1, 4, 0}, +/* 38 */ { 6, s_6_38, -1, 2, 0}, +/* 39 */ { 5, s_6_39, -1, 2, 0}, +/* 40 */ { 4, s_6_40, -1, 1, 0}, +/* 41 */ { 5, s_6_41, -1, 1, 0}, +/* 42 */ { 4, s_6_42, -1, 1, 0}, +/* 43 */ { 8, s_6_43, -1, 1, 0}, +/* 44 */ { 8, s_6_44, -1, 1, 0}, +/* 45 */ { 4, s_6_45, -1, 9, 0} +}; + +static const symbol s_7_0[2] = { 'y', 'a' }; +static const symbol s_7_1[2] = { 'y', 'e' }; +static const symbol s_7_2[3] = { 'y', 'a', 'n' }; +static const symbol s_7_3[3] = { 'y', 'e', 'n' }; +static const symbol s_7_4[5] = { 'y', 'e', 'r', 'o', 'n' }; +static const symbol s_7_5[5] = { 'y', 'e', 'n', 'd', 'o' }; +static const symbol s_7_6[2] = { 'y', 'o' }; +static const symbol s_7_7[3] = { 'y', 'a', 's' }; +static const symbol s_7_8[3] = { 'y', 'e', 's' }; +static const symbol s_7_9[4] = { 'y', 'a', 'i', 's' }; +static const symbol s_7_10[5] = { 'y', 'a', 'm', 'o', 's' }; +static const symbol s_7_11[2] = { 'y', 0xF3 }; + +static const struct among a_7[12] = +{ +/* 0 */ { 2, s_7_0, -1, 1, 0}, +/* 1 */ { 2, s_7_1, -1, 1, 0}, +/* 2 */ { 3, s_7_2, -1, 1, 0}, +/* 3 */ { 3, s_7_3, -1, 1, 0}, +/* 4 */ { 5, s_7_4, -1, 1, 0}, +/* 5 */ { 5, s_7_5, -1, 1, 0}, +/* 6 */ { 2, s_7_6, -1, 1, 0}, +/* 7 */ { 3, s_7_7, -1, 1, 0}, +/* 8 */ { 3, s_7_8, -1, 1, 0}, +/* 9 */ { 4, s_7_9, -1, 1, 0}, +/* 10 */ { 5, s_7_10, -1, 1, 0}, +/* 11 */ { 2, s_7_11, -1, 1, 0} +}; + +static const symbol s_8_0[3] = { 'a', 'b', 'a' }; +static const symbol s_8_1[3] = { 'a', 'd', 'a' }; +static const symbol s_8_2[3] = { 'i', 'd', 'a' }; +static const symbol s_8_3[3] = { 'a', 'r', 'a' }; +static const symbol s_8_4[4] = { 'i', 'e', 'r', 'a' }; +static const symbol s_8_5[2] = { 0xED, 'a' }; +static const symbol s_8_6[4] = { 'a', 'r', 0xED, 'a' }; +static const symbol s_8_7[4] = { 'e', 'r', 0xED, 'a' }; +static const symbol s_8_8[4] = { 'i', 'r', 0xED, 'a' }; +static const symbol s_8_9[2] = { 'a', 'd' }; +static const symbol s_8_10[2] = { 'e', 'd' }; +static const symbol s_8_11[2] = { 'i', 'd' }; +static const symbol s_8_12[3] = { 'a', 's', 'e' }; +static const symbol s_8_13[4] = { 'i', 'e', 's', 'e' }; +static const symbol s_8_14[4] = { 'a', 's', 't', 'e' }; +static const symbol s_8_15[4] = { 'i', 's', 't', 'e' }; +static const symbol s_8_16[2] = { 'a', 'n' }; +static const symbol s_8_17[4] = { 'a', 'b', 'a', 'n' }; +static const symbol s_8_18[4] = { 'a', 'r', 'a', 'n' }; +static const symbol s_8_19[5] = { 'i', 'e', 'r', 'a', 'n' }; +static const symbol s_8_20[3] = { 0xED, 'a', 'n' }; +static const symbol s_8_21[5] = { 'a', 'r', 0xED, 'a', 'n' }; +static const symbol s_8_22[5] = { 'e', 'r', 0xED, 'a', 'n' }; +static const symbol s_8_23[5] = { 'i', 'r', 0xED, 'a', 'n' }; +static const symbol s_8_24[2] = { 'e', 'n' }; +static const symbol s_8_25[4] = { 'a', 's', 'e', 'n' }; +static const symbol s_8_26[5] = { 'i', 'e', 's', 'e', 'n' }; +static const symbol s_8_27[4] = { 'a', 'r', 'o', 'n' }; +static const symbol s_8_28[5] = { 'i', 'e', 'r', 'o', 'n' }; +static const symbol s_8_29[4] = { 'a', 'r', 0xE1, 'n' }; +static const symbol s_8_30[4] = { 'e', 'r', 0xE1, 'n' }; +static const symbol s_8_31[4] = { 'i', 'r', 0xE1, 'n' }; +static const symbol s_8_32[3] = { 'a', 'd', 'o' }; +static const symbol s_8_33[3] = { 'i', 'd', 'o' }; +static const symbol s_8_34[4] = { 'a', 'n', 'd', 'o' }; +static const symbol s_8_35[5] = { 'i', 'e', 'n', 'd', 'o' }; +static const symbol s_8_36[2] = { 'a', 'r' }; +static const symbol s_8_37[2] = { 'e', 'r' }; +static const symbol s_8_38[2] = { 'i', 'r' }; +static const symbol s_8_39[2] = { 'a', 's' }; +static const symbol s_8_40[4] = { 'a', 'b', 'a', 's' }; +static const symbol s_8_41[4] = { 'a', 'd', 'a', 's' }; +static const symbol s_8_42[4] = { 'i', 'd', 'a', 's' }; +static const symbol s_8_43[4] = { 'a', 'r', 'a', 's' }; +static const symbol s_8_44[5] = { 'i', 'e', 'r', 'a', 's' }; +static const symbol s_8_45[3] = { 0xED, 'a', 's' }; +static const symbol s_8_46[5] = { 'a', 'r', 0xED, 'a', 's' }; +static const symbol s_8_47[5] = { 'e', 'r', 0xED, 'a', 's' }; +static const symbol s_8_48[5] = { 'i', 'r', 0xED, 'a', 's' }; +static const symbol s_8_49[2] = { 'e', 's' }; +static const symbol s_8_50[4] = { 'a', 's', 'e', 's' }; +static const symbol s_8_51[5] = { 'i', 'e', 's', 'e', 's' }; +static const symbol s_8_52[5] = { 'a', 'b', 'a', 'i', 's' }; +static const symbol s_8_53[5] = { 'a', 'r', 'a', 'i', 's' }; +static const symbol s_8_54[6] = { 'i', 'e', 'r', 'a', 'i', 's' }; +static const symbol s_8_55[4] = { 0xED, 'a', 'i', 's' }; +static const symbol s_8_56[6] = { 'a', 'r', 0xED, 'a', 'i', 's' }; +static const symbol s_8_57[6] = { 'e', 'r', 0xED, 'a', 'i', 's' }; +static const symbol s_8_58[6] = { 'i', 'r', 0xED, 'a', 'i', 's' }; +static const symbol s_8_59[5] = { 'a', 's', 'e', 'i', 's' }; +static const symbol s_8_60[6] = { 'i', 'e', 's', 'e', 'i', 's' }; +static const symbol s_8_61[6] = { 'a', 's', 't', 'e', 'i', 's' }; +static const symbol s_8_62[6] = { 'i', 's', 't', 'e', 'i', 's' }; +static const symbol s_8_63[3] = { 0xE1, 'i', 's' }; +static const symbol s_8_64[3] = { 0xE9, 'i', 's' }; +static const symbol s_8_65[5] = { 'a', 'r', 0xE9, 'i', 's' }; +static const symbol s_8_66[5] = { 'e', 'r', 0xE9, 'i', 's' }; +static const symbol s_8_67[5] = { 'i', 'r', 0xE9, 'i', 's' }; +static const symbol s_8_68[4] = { 'a', 'd', 'o', 's' }; +static const symbol s_8_69[4] = { 'i', 'd', 'o', 's' }; +static const symbol s_8_70[4] = { 'a', 'm', 'o', 's' }; +static const symbol s_8_71[6] = { 0xE1, 'b', 'a', 'm', 'o', 's' }; +static const symbol s_8_72[6] = { 0xE1, 'r', 'a', 'm', 'o', 's' }; +static const symbol s_8_73[7] = { 'i', 0xE9, 'r', 'a', 'm', 'o', 's' }; +static const symbol s_8_74[5] = { 0xED, 'a', 'm', 'o', 's' }; +static const symbol s_8_75[7] = { 'a', 'r', 0xED, 'a', 'm', 'o', 's' }; +static const symbol s_8_76[7] = { 'e', 'r', 0xED, 'a', 'm', 'o', 's' }; +static const symbol s_8_77[7] = { 'i', 'r', 0xED, 'a', 'm', 'o', 's' }; +static const symbol s_8_78[4] = { 'e', 'm', 'o', 's' }; +static const symbol s_8_79[6] = { 'a', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_8_80[6] = { 'e', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_8_81[6] = { 'i', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_8_82[6] = { 0xE1, 's', 'e', 'm', 'o', 's' }; +static const symbol s_8_83[7] = { 'i', 0xE9, 's', 'e', 'm', 'o', 's' }; +static const symbol s_8_84[4] = { 'i', 'm', 'o', 's' }; +static const symbol s_8_85[4] = { 'a', 'r', 0xE1, 's' }; +static const symbol s_8_86[4] = { 'e', 'r', 0xE1, 's' }; +static const symbol s_8_87[4] = { 'i', 'r', 0xE1, 's' }; +static const symbol s_8_88[2] = { 0xED, 's' }; +static const symbol s_8_89[3] = { 'a', 'r', 0xE1 }; +static const symbol s_8_90[3] = { 'e', 'r', 0xE1 }; +static const symbol s_8_91[3] = { 'i', 'r', 0xE1 }; +static const symbol s_8_92[3] = { 'a', 'r', 0xE9 }; +static const symbol s_8_93[3] = { 'e', 'r', 0xE9 }; +static const symbol s_8_94[3] = { 'i', 'r', 0xE9 }; +static const symbol s_8_95[2] = { 'i', 0xF3 }; + +static const struct among a_8[96] = +{ +/* 0 */ { 3, s_8_0, -1, 2, 0}, +/* 1 */ { 3, s_8_1, -1, 2, 0}, +/* 2 */ { 3, s_8_2, -1, 2, 0}, +/* 3 */ { 3, s_8_3, -1, 2, 0}, +/* 4 */ { 4, s_8_4, -1, 2, 0}, +/* 5 */ { 2, s_8_5, -1, 2, 0}, +/* 6 */ { 4, s_8_6, 5, 2, 0}, +/* 7 */ { 4, s_8_7, 5, 2, 0}, +/* 8 */ { 4, s_8_8, 5, 2, 0}, +/* 9 */ { 2, s_8_9, -1, 2, 0}, +/* 10 */ { 2, s_8_10, -1, 2, 0}, +/* 11 */ { 2, s_8_11, -1, 2, 0}, +/* 12 */ { 3, s_8_12, -1, 2, 0}, +/* 13 */ { 4, s_8_13, -1, 2, 0}, +/* 14 */ { 4, s_8_14, -1, 2, 0}, +/* 15 */ { 4, s_8_15, -1, 2, 0}, +/* 16 */ { 2, s_8_16, -1, 2, 0}, +/* 17 */ { 4, s_8_17, 16, 2, 0}, +/* 18 */ { 4, s_8_18, 16, 2, 0}, +/* 19 */ { 5, s_8_19, 16, 2, 0}, +/* 20 */ { 3, s_8_20, 16, 2, 0}, +/* 21 */ { 5, s_8_21, 20, 2, 0}, +/* 22 */ { 5, s_8_22, 20, 2, 0}, +/* 23 */ { 5, s_8_23, 20, 2, 0}, +/* 24 */ { 2, s_8_24, -1, 1, 0}, +/* 25 */ { 4, s_8_25, 24, 2, 0}, +/* 26 */ { 5, s_8_26, 24, 2, 0}, +/* 27 */ { 4, s_8_27, -1, 2, 0}, +/* 28 */ { 5, s_8_28, -1, 2, 0}, +/* 29 */ { 4, s_8_29, -1, 2, 0}, +/* 30 */ { 4, s_8_30, -1, 2, 0}, +/* 31 */ { 4, s_8_31, -1, 2, 0}, +/* 32 */ { 3, s_8_32, -1, 2, 0}, +/* 33 */ { 3, s_8_33, -1, 2, 0}, +/* 34 */ { 4, s_8_34, -1, 2, 0}, +/* 35 */ { 5, s_8_35, -1, 2, 0}, +/* 36 */ { 2, s_8_36, -1, 2, 0}, +/* 37 */ { 2, s_8_37, -1, 2, 0}, +/* 38 */ { 2, s_8_38, -1, 2, 0}, +/* 39 */ { 2, s_8_39, -1, 2, 0}, +/* 40 */ { 4, s_8_40, 39, 2, 0}, +/* 41 */ { 4, s_8_41, 39, 2, 0}, +/* 42 */ { 4, s_8_42, 39, 2, 0}, +/* 43 */ { 4, s_8_43, 39, 2, 0}, +/* 44 */ { 5, s_8_44, 39, 2, 0}, +/* 45 */ { 3, s_8_45, 39, 2, 0}, +/* 46 */ { 5, s_8_46, 45, 2, 0}, +/* 47 */ { 5, s_8_47, 45, 2, 0}, +/* 48 */ { 5, s_8_48, 45, 2, 0}, +/* 49 */ { 2, s_8_49, -1, 1, 0}, +/* 50 */ { 4, s_8_50, 49, 2, 0}, +/* 51 */ { 5, s_8_51, 49, 2, 0}, +/* 52 */ { 5, s_8_52, -1, 2, 0}, +/* 53 */ { 5, s_8_53, -1, 2, 0}, +/* 54 */ { 6, s_8_54, -1, 2, 0}, +/* 55 */ { 4, s_8_55, -1, 2, 0}, +/* 56 */ { 6, s_8_56, 55, 2, 0}, +/* 57 */ { 6, s_8_57, 55, 2, 0}, +/* 58 */ { 6, s_8_58, 55, 2, 0}, +/* 59 */ { 5, s_8_59, -1, 2, 0}, +/* 60 */ { 6, s_8_60, -1, 2, 0}, +/* 61 */ { 6, s_8_61, -1, 2, 0}, +/* 62 */ { 6, s_8_62, -1, 2, 0}, +/* 63 */ { 3, s_8_63, -1, 2, 0}, +/* 64 */ { 3, s_8_64, -1, 1, 0}, +/* 65 */ { 5, s_8_65, 64, 2, 0}, +/* 66 */ { 5, s_8_66, 64, 2, 0}, +/* 67 */ { 5, s_8_67, 64, 2, 0}, +/* 68 */ { 4, s_8_68, -1, 2, 0}, +/* 69 */ { 4, s_8_69, -1, 2, 0}, +/* 70 */ { 4, s_8_70, -1, 2, 0}, +/* 71 */ { 6, s_8_71, 70, 2, 0}, +/* 72 */ { 6, s_8_72, 70, 2, 0}, +/* 73 */ { 7, s_8_73, 70, 2, 0}, +/* 74 */ { 5, s_8_74, 70, 2, 0}, +/* 75 */ { 7, s_8_75, 74, 2, 0}, +/* 76 */ { 7, s_8_76, 74, 2, 0}, +/* 77 */ { 7, s_8_77, 74, 2, 0}, +/* 78 */ { 4, s_8_78, -1, 1, 0}, +/* 79 */ { 6, s_8_79, 78, 2, 0}, +/* 80 */ { 6, s_8_80, 78, 2, 0}, +/* 81 */ { 6, s_8_81, 78, 2, 0}, +/* 82 */ { 6, s_8_82, 78, 2, 0}, +/* 83 */ { 7, s_8_83, 78, 2, 0}, +/* 84 */ { 4, s_8_84, -1, 2, 0}, +/* 85 */ { 4, s_8_85, -1, 2, 0}, +/* 86 */ { 4, s_8_86, -1, 2, 0}, +/* 87 */ { 4, s_8_87, -1, 2, 0}, +/* 88 */ { 2, s_8_88, -1, 2, 0}, +/* 89 */ { 3, s_8_89, -1, 2, 0}, +/* 90 */ { 3, s_8_90, -1, 2, 0}, +/* 91 */ { 3, s_8_91, -1, 2, 0}, +/* 92 */ { 3, s_8_92, -1, 2, 0}, +/* 93 */ { 3, s_8_93, -1, 2, 0}, +/* 94 */ { 3, s_8_94, -1, 2, 0}, +/* 95 */ { 2, s_8_95, -1, 2, 0} +}; + +static const symbol s_9_0[1] = { 'a' }; +static const symbol s_9_1[1] = { 'e' }; +static const symbol s_9_2[1] = { 'o' }; +static const symbol s_9_3[2] = { 'o', 's' }; +static const symbol s_9_4[1] = { 0xE1 }; +static const symbol s_9_5[1] = { 0xE9 }; +static const symbol s_9_6[1] = { 0xED }; +static const symbol s_9_7[1] = { 0xF3 }; + +static const struct among a_9[8] = +{ +/* 0 */ { 1, s_9_0, -1, 1, 0}, +/* 1 */ { 1, s_9_1, -1, 2, 0}, +/* 2 */ { 1, s_9_2, -1, 1, 0}, +/* 3 */ { 2, s_9_3, -1, 1, 0}, +/* 4 */ { 1, s_9_4, -1, 1, 0}, +/* 5 */ { 1, s_9_5, -1, 2, 0}, +/* 6 */ { 1, s_9_6, -1, 1, 0}, +/* 7 */ { 1, s_9_7, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 }; + +static const symbol s_0[] = { 'a' }; +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[] = { 'i', 'e', 'n', 'd', 'o' }; +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[] = { '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 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; /* grouping v, line 38 */ + { int c3 = z->c; /* or, line 38 */ + 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; + z->c += ret; + } + goto lab3; + lab4: + z->c = c3; + 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; + z->c += ret; + } + } + lab3: + goto lab1; + lab2: + z->c = c2; + 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; /* non v, line 40 */ + { /* gopast */ /* grouping v, line 40 */ + int ret = out_grouping(z, g_v, 97, 252, 1); + if (ret < 0) goto lab6; + z->c += ret; + } + goto lab5; + lab6: + z->c = c4; + 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 */ + } + lab5: + ; + } + lab1: + z->I[0] = z->c; /* setmark pV, line 41 */ + lab0: + z->c = c1; + } + { int c5 = z->c; /* do, line 43 */ + { /* gopast */ /* grouping v, line 44 */ + int ret = out_grouping(z, g_v, 97, 252, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 44 */ + int ret = in_grouping(z, g_v, 97, 252, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[1] = z->c; /* setmark p1, line 44 */ + { /* gopast */ /* grouping v, line 45 */ + int ret = out_grouping(z, g_v, 97, 252, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 45 */ + int ret = in_grouping(z, g_v, 97, 252, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[2] = z->c; /* setmark p2, line 45 */ + lab7: + z->c = c5; + } + return 1; +} + +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 /* 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) { /* among, line 50 */ + case 1: + { int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_1); /* <-, line 52 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 1, s_3); /* <-, line 54 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 1, s_4); /* <-, line 55 */ + if (ret < 0) return ret; + } + break; + case 6: + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 57 */ + break; + } + continue; + lab0: + z->c = c1; + 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 63 */ + return 1; +} + +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) { /* 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) { /* 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; /* 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; /* substring, line 72 */ + among_var = find_among_b(z, a_2, 11); + if (!(among_var)) return 0; + { int ret = r_RV(z); /* call RV, line 72 */ + if (ret <= 0) return ret; + } + 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 */ + if (ret < 0) return ret; + } + break; + case 2: + z->bra = z->c; /* ], line 74 */ + { int ret = slice_from_s(z, 4, s_6); /* <-, line 74 */ + if (ret < 0) return ret; + } + break; + case 3: + z->bra = z->c; /* ], line 75 */ + { int ret = slice_from_s(z, 2, s_7); /* <-, line 75 */ + if (ret < 0) return ret; + } + break; + case 4: + z->bra = z->c; /* ], line 76 */ + { int ret = slice_from_s(z, 2, s_8); /* <-, line 76 */ + if (ret < 0) return ret; + } + break; + case 5: + z->bra = z->c; /* ], line 77 */ + { int ret = slice_from_s(z, 2, s_9); /* <-, line 77 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_del(z); /* delete, line 81 */ + if (ret < 0) return ret; + } + break; + case 7: + 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; + } + break; + } + return 1; +} + +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; /* 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) { /* among, line 87 */ + case 1: + { 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); /* call R2, line 105 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 105 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* try, line 106 */ + z->ket = z->c; /* [, line 106 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + lab0: + ; + } + break; + case 3: + { int ret = r_R2(z); /* call R2, line 111 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_11); /* <-, line 111 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = r_R2(z); /* call R2, line 115 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 1, s_12); /* <-, line 115 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = r_R2(z); /* call R2, line 119 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 4, s_13); /* <-, line 119 */ + if (ret < 0) return ret; + } + break; + case 6: + { 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 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 - 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); /* 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) { /* among, line 125 */ + case 1: + z->ket = z->c; /* [, line 126 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + break; + } + lab1: + ; + } + break; + case 7: + { 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 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 - 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 */ + { 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); /* call R2, line 147 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 147 */ + if (ret < 0) return ret; + } + { 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 - 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 */ + { 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); /* call R2, line 159 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 159 */ + if (ret < 0) return ret; + } + { int m5 = z->l - z->c; (void)m5; /* try, line 160 */ + z->ket = z->c; /* [, line 161 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + lab4: + ; + } + break; + } + return 1; +} + +static int r_y_verb_suffix(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 168 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 168 */ + if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; } /* substring, line 168 */ + z->bra = z->c; /* ], line 168 */ + z->lb = mlimit1; + } + 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) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 176 */ + if (z->c < z->I[0]) return 0; + 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 = mlimit1; return 0; } + z->bra = z->c; /* ], line 176 */ + z->lb = mlimit1; + } + switch (among_var) { /* among, line 176 */ + case 1: + { 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: + ; + } + z->bra = z->c; /* ], line 179 */ + { int ret = slice_del(z); /* delete, line 179 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 200 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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) { /* among, line 205 */ + case 1: + { 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); /* call RV, line 210 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 210 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* try, line 210 */ + z->ket = z->c; /* [, line 210 */ + 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_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); /* 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 */ + if (ret < 0) return ret; + } + lab0: + ; + } + break; + } + return 1; +} + +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 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 - m1; + } + { 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 - 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 - 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 - m2; + } + { 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 - m4; + } + z->c = z->lb; + { 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 = c5; + } + return 1; +} + +extern struct SN_env * spanish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } + +extern void spanish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c new file mode 100644 index 0000000..13be217 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c @@ -0,0 +1,299 @@ +/* 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 swedish_ISO_8859_1_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_other_suffix(struct SN_env * z); +static int r_consonant_pair(struct SN_env * z); +static int r_main_suffix(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * swedish_ISO_8859_1_create_env(void); +extern void swedish_ISO_8859_1_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[1] = { 'a' }; +static const symbol s_0_1[4] = { 'a', 'r', 'n', 'a' }; +static const symbol s_0_2[4] = { 'e', 'r', 'n', 'a' }; +static const symbol s_0_3[7] = { 'h', 'e', 't', 'e', 'r', 'n', 'a' }; +static const symbol s_0_4[4] = { 'o', 'r', 'n', 'a' }; +static const symbol s_0_5[2] = { 'a', 'd' }; +static const symbol s_0_6[1] = { 'e' }; +static const symbol s_0_7[3] = { 'a', 'd', 'e' }; +static const symbol s_0_8[4] = { 'a', 'n', 'd', 'e' }; +static const symbol s_0_9[4] = { 'a', 'r', 'n', 'e' }; +static const symbol s_0_10[3] = { 'a', 'r', 'e' }; +static const symbol s_0_11[4] = { 'a', 's', 't', 'e' }; +static const symbol s_0_12[2] = { 'e', 'n' }; +static const symbol s_0_13[5] = { 'a', 'n', 'd', 'e', 'n' }; +static const symbol s_0_14[4] = { 'a', 'r', 'e', 'n' }; +static const symbol s_0_15[5] = { 'h', 'e', 't', 'e', 'n' }; +static const symbol s_0_16[3] = { 'e', 'r', 'n' }; +static const symbol s_0_17[2] = { 'a', 'r' }; +static const symbol s_0_18[2] = { 'e', 'r' }; +static const symbol s_0_19[5] = { 'h', 'e', 't', 'e', 'r' }; +static const symbol s_0_20[2] = { 'o', 'r' }; +static const symbol s_0_21[1] = { 's' }; +static const symbol s_0_22[2] = { 'a', 's' }; +static const symbol s_0_23[5] = { 'a', 'r', 'n', 'a', 's' }; +static const symbol s_0_24[5] = { 'e', 'r', 'n', 'a', 's' }; +static const symbol s_0_25[5] = { 'o', 'r', 'n', 'a', 's' }; +static const symbol s_0_26[2] = { 'e', 's' }; +static const symbol s_0_27[4] = { 'a', 'd', 'e', 's' }; +static const symbol s_0_28[5] = { 'a', 'n', 'd', 'e', 's' }; +static const symbol s_0_29[3] = { 'e', 'n', 's' }; +static const symbol s_0_30[5] = { 'a', 'r', 'e', 'n', 's' }; +static const symbol s_0_31[6] = { 'h', 'e', 't', 'e', 'n', 's' }; +static const symbol s_0_32[4] = { 'e', 'r', 'n', 's' }; +static const symbol s_0_33[2] = { 'a', 't' }; +static const symbol s_0_34[5] = { 'a', 'n', 'd', 'e', 't' }; +static const symbol s_0_35[3] = { 'h', 'e', 't' }; +static const symbol s_0_36[3] = { 'a', 's', 't' }; + +static const struct among a_0[37] = +{ +/* 0 */ { 1, s_0_0, -1, 1, 0}, +/* 1 */ { 4, s_0_1, 0, 1, 0}, +/* 2 */ { 4, s_0_2, 0, 1, 0}, +/* 3 */ { 7, s_0_3, 2, 1, 0}, +/* 4 */ { 4, s_0_4, 0, 1, 0}, +/* 5 */ { 2, s_0_5, -1, 1, 0}, +/* 6 */ { 1, s_0_6, -1, 1, 0}, +/* 7 */ { 3, s_0_7, 6, 1, 0}, +/* 8 */ { 4, s_0_8, 6, 1, 0}, +/* 9 */ { 4, s_0_9, 6, 1, 0}, +/* 10 */ { 3, s_0_10, 6, 1, 0}, +/* 11 */ { 4, s_0_11, 6, 1, 0}, +/* 12 */ { 2, s_0_12, -1, 1, 0}, +/* 13 */ { 5, s_0_13, 12, 1, 0}, +/* 14 */ { 4, s_0_14, 12, 1, 0}, +/* 15 */ { 5, s_0_15, 12, 1, 0}, +/* 16 */ { 3, s_0_16, -1, 1, 0}, +/* 17 */ { 2, s_0_17, -1, 1, 0}, +/* 18 */ { 2, s_0_18, -1, 1, 0}, +/* 19 */ { 5, s_0_19, 18, 1, 0}, +/* 20 */ { 2, s_0_20, -1, 1, 0}, +/* 21 */ { 1, s_0_21, -1, 2, 0}, +/* 22 */ { 2, s_0_22, 21, 1, 0}, +/* 23 */ { 5, s_0_23, 22, 1, 0}, +/* 24 */ { 5, s_0_24, 22, 1, 0}, +/* 25 */ { 5, s_0_25, 22, 1, 0}, +/* 26 */ { 2, s_0_26, 21, 1, 0}, +/* 27 */ { 4, s_0_27, 26, 1, 0}, +/* 28 */ { 5, s_0_28, 26, 1, 0}, +/* 29 */ { 3, s_0_29, 21, 1, 0}, +/* 30 */ { 5, s_0_30, 29, 1, 0}, +/* 31 */ { 6, s_0_31, 29, 1, 0}, +/* 32 */ { 4, s_0_32, 21, 1, 0}, +/* 33 */ { 2, s_0_33, -1, 1, 0}, +/* 34 */ { 5, s_0_34, -1, 1, 0}, +/* 35 */ { 3, s_0_35, -1, 1, 0}, +/* 36 */ { 3, s_0_36, -1, 1, 0} +}; + +static const symbol s_1_0[2] = { 'd', 'd' }; +static const symbol s_1_1[2] = { 'g', 'd' }; +static const symbol s_1_2[2] = { 'n', 'n' }; +static const symbol s_1_3[2] = { 'd', 't' }; +static const symbol s_1_4[2] = { 'g', 't' }; +static const symbol s_1_5[2] = { 'k', 't' }; +static const symbol s_1_6[2] = { 't', 't' }; + +static const struct among a_1[7] = +{ +/* 0 */ { 2, s_1_0, -1, -1, 0}, +/* 1 */ { 2, s_1_1, -1, -1, 0}, +/* 2 */ { 2, s_1_2, -1, -1, 0}, +/* 3 */ { 2, s_1_3, -1, -1, 0}, +/* 4 */ { 2, s_1_4, -1, -1, 0}, +/* 5 */ { 2, s_1_5, -1, -1, 0}, +/* 6 */ { 2, s_1_6, -1, -1, 0} +}; + +static const symbol s_2_0[2] = { 'i', 'g' }; +static const symbol s_2_1[3] = { 'l', 'i', 'g' }; +static const symbol s_2_2[3] = { 'e', 'l', 's' }; +static const symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' }; +static const symbol s_2_4[4] = { 'l', 0xF6, 's', 't' }; + +static const struct among a_2[5] = +{ +/* 0 */ { 2, s_2_0, -1, 1, 0}, +/* 1 */ { 3, s_2_1, 0, 1, 0}, +/* 2 */ { 3, s_2_2, -1, 1, 0}, +/* 3 */ { 5, s_2_3, -1, 3, 0}, +/* 4 */ { 4, s_2_4, -1, 2, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 }; + +static const unsigned char g_s_ending[] = { 119, 127, 149 }; + +static const symbol s_0[] = { 'l', 0xF6, 's' }; +static const symbol s_1[] = { 'f', 'u', 'l', 'l' }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */ + { int c_test1 = z->c; /* test, line 29 */ + { int ret = z->c + 3; /* hop, line 29 */ + if (0 > ret || ret > z->l) return 0; + z->c = ret; + } + z->I[1] = z->c; /* setmark x, line 29 */ + 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 */ + int ret = in_grouping(z, g_v, 97, 246, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 30 */ + /* try, line 31 */ + if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 31 */ + z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 31 */ +lab0: + return 1; +} + +static int r_main_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 37 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 37 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 37 */ + 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 = mlimit1; + } + 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; /* grouping s_ending, line 46 */ + { int ret = slice_del(z); /* delete, line 46 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 50 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + { int m2 = z->l - z->c; (void)m2; /* and, line 52 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* among, line 51 */ + 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 = 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 = mlimit1; + } + return 1; +} + +static int r_other_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 55 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 56 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 56 */ + among_var = find_among_b(z, a_2, 5); + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 56 */ + switch (among_var) { /* among, line 56 */ + case 1: + { int ret = slice_del(z); /* delete, line 57 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 3, s_0); /* <-, line 58 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 4, s_1); /* <-, line 59 */ + if (ret < 0) return ret; + } + break; + } + z->lb = mlimit1; + } + return 1; +} + +extern int swedish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 66 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 66 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + 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); /* 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); /* 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); /* call other_suffix, line 70 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + lab3: + z->c = z->l - m4; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); } + +extern void swedish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c new file mode 100644 index 0000000..ae088a3 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c @@ -0,0 +1,885 @@ +/* This file was generated automatically by the Snowball to ISO C compiler */ +/* http://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int hungarian_ISO_8859_2_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_double(struct SN_env * z); +static int r_undouble(struct SN_env * z); +static int r_factive(struct SN_env * z); +static int r_instrum(struct SN_env * z); +static int r_plur_owner(struct SN_env * z); +static int r_sing_owner(struct SN_env * z); +static int r_owned(struct SN_env * z); +static int r_plural(struct SN_env * z); +static int r_case_other(struct SN_env * z); +static int r_case_special(struct SN_env * z); +static int r_case(struct SN_env * z); +static int r_v_ending(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#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); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[2] = { 'c', 's' }; +static const symbol s_0_1[3] = { 'd', 'z', 's' }; +static const symbol s_0_2[2] = { 'g', 'y' }; +static const symbol s_0_3[2] = { 'l', 'y' }; +static const symbol s_0_4[2] = { 'n', 'y' }; +static const symbol s_0_5[2] = { 's', 'z' }; +static const symbol s_0_6[2] = { 't', 'y' }; +static const symbol s_0_7[2] = { 'z', 's' }; + +static const struct among a_0[8] = +{ +/* 0 */ { 2, s_0_0, -1, -1, 0}, +/* 1 */ { 3, s_0_1, -1, -1, 0}, +/* 2 */ { 2, s_0_2, -1, -1, 0}, +/* 3 */ { 2, s_0_3, -1, -1, 0}, +/* 4 */ { 2, s_0_4, -1, -1, 0}, +/* 5 */ { 2, s_0_5, -1, -1, 0}, +/* 6 */ { 2, s_0_6, -1, -1, 0}, +/* 7 */ { 2, s_0_7, -1, -1, 0} +}; + +static const symbol s_1_0[1] = { 0xE1 }; +static const symbol s_1_1[1] = { 0xE9 }; + +static const struct among a_1[2] = +{ +/* 0 */ { 1, s_1_0, -1, 1, 0}, +/* 1 */ { 1, s_1_1, -1, 2, 0} +}; + +static const symbol s_2_0[2] = { 'b', 'b' }; +static const symbol s_2_1[2] = { 'c', 'c' }; +static const symbol s_2_2[2] = { 'd', 'd' }; +static const symbol s_2_3[2] = { 'f', 'f' }; +static const symbol s_2_4[2] = { 'g', 'g' }; +static const symbol s_2_5[2] = { 'j', 'j' }; +static const symbol s_2_6[2] = { 'k', 'k' }; +static const symbol s_2_7[2] = { 'l', 'l' }; +static const symbol s_2_8[2] = { 'm', 'm' }; +static const symbol s_2_9[2] = { 'n', 'n' }; +static const symbol s_2_10[2] = { 'p', 'p' }; +static const symbol s_2_11[2] = { 'r', 'r' }; +static const symbol s_2_12[3] = { 'c', 'c', 's' }; +static const symbol s_2_13[2] = { 's', 's' }; +static const symbol s_2_14[3] = { 'z', 'z', 's' }; +static const symbol s_2_15[2] = { 't', 't' }; +static const symbol s_2_16[2] = { 'v', 'v' }; +static const symbol s_2_17[3] = { 'g', 'g', 'y' }; +static const symbol s_2_18[3] = { 'l', 'l', 'y' }; +static const symbol s_2_19[3] = { 'n', 'n', 'y' }; +static const symbol s_2_20[3] = { 't', 't', 'y' }; +static const symbol s_2_21[3] = { 's', 's', 'z' }; +static const symbol s_2_22[2] = { 'z', 'z' }; + +static const struct among a_2[23] = +{ +/* 0 */ { 2, s_2_0, -1, -1, 0}, +/* 1 */ { 2, s_2_1, -1, -1, 0}, +/* 2 */ { 2, s_2_2, -1, -1, 0}, +/* 3 */ { 2, s_2_3, -1, -1, 0}, +/* 4 */ { 2, s_2_4, -1, -1, 0}, +/* 5 */ { 2, s_2_5, -1, -1, 0}, +/* 6 */ { 2, s_2_6, -1, -1, 0}, +/* 7 */ { 2, s_2_7, -1, -1, 0}, +/* 8 */ { 2, s_2_8, -1, -1, 0}, +/* 9 */ { 2, s_2_9, -1, -1, 0}, +/* 10 */ { 2, s_2_10, -1, -1, 0}, +/* 11 */ { 2, s_2_11, -1, -1, 0}, +/* 12 */ { 3, s_2_12, -1, -1, 0}, +/* 13 */ { 2, s_2_13, -1, -1, 0}, +/* 14 */ { 3, s_2_14, -1, -1, 0}, +/* 15 */ { 2, s_2_15, -1, -1, 0}, +/* 16 */ { 2, s_2_16, -1, -1, 0}, +/* 17 */ { 3, s_2_17, -1, -1, 0}, +/* 18 */ { 3, s_2_18, -1, -1, 0}, +/* 19 */ { 3, s_2_19, -1, -1, 0}, +/* 20 */ { 3, s_2_20, -1, -1, 0}, +/* 21 */ { 3, s_2_21, -1, -1, 0}, +/* 22 */ { 2, s_2_22, -1, -1, 0} +}; + +static const symbol s_3_0[2] = { 'a', 'l' }; +static const symbol s_3_1[2] = { 'e', 'l' }; + +static const struct among a_3[2] = +{ +/* 0 */ { 2, s_3_0, -1, 1, 0}, +/* 1 */ { 2, s_3_1, -1, 1, 0} +}; + +static const symbol s_4_0[2] = { 'b', 'a' }; +static const symbol s_4_1[2] = { 'r', 'a' }; +static const symbol s_4_2[2] = { 'b', 'e' }; +static const symbol s_4_3[2] = { 'r', 'e' }; +static const symbol s_4_4[2] = { 'i', 'g' }; +static const symbol s_4_5[3] = { 'n', 'a', 'k' }; +static const symbol s_4_6[3] = { 'n', 'e', 'k' }; +static const symbol s_4_7[3] = { 'v', 'a', 'l' }; +static const symbol s_4_8[3] = { 'v', 'e', 'l' }; +static const symbol s_4_9[2] = { 'u', 'l' }; +static const symbol s_4_10[3] = { 'n', 0xE1, 'l' }; +static const symbol s_4_11[3] = { 'n', 0xE9, 'l' }; +static const symbol s_4_12[3] = { 'b', 0xF3, 'l' }; +static const symbol s_4_13[3] = { 'r', 0xF3, 'l' }; +static const symbol s_4_14[3] = { 't', 0xF3, 'l' }; +static const symbol s_4_15[3] = { 'b', 0xF5, 'l' }; +static const symbol s_4_16[3] = { 'r', 0xF5, 'l' }; +static const symbol s_4_17[3] = { 't', 0xF5, 'l' }; +static const symbol s_4_18[2] = { 0xFC, 'l' }; +static const symbol s_4_19[1] = { 'n' }; +static const symbol s_4_20[2] = { 'a', 'n' }; +static const symbol s_4_21[3] = { 'b', 'a', 'n' }; +static const symbol s_4_22[2] = { 'e', 'n' }; +static const symbol s_4_23[3] = { 'b', 'e', 'n' }; +static const symbol s_4_24[6] = { 'k', 0xE9, 'p', 'p', 'e', 'n' }; +static const symbol s_4_25[2] = { 'o', 'n' }; +static const symbol s_4_26[2] = { 0xF6, 'n' }; +static const symbol s_4_27[4] = { 'k', 0xE9, 'p', 'p' }; +static const symbol s_4_28[3] = { 'k', 'o', 'r' }; +static const symbol s_4_29[1] = { 't' }; +static const symbol s_4_30[2] = { 'a', 't' }; +static const symbol s_4_31[2] = { 'e', 't' }; +static const symbol s_4_32[4] = { 'k', 0xE9, 'n', 't' }; +static const symbol s_4_33[6] = { 'a', 'n', 'k', 0xE9, 'n', 't' }; +static const symbol s_4_34[6] = { 'e', 'n', 'k', 0xE9, 'n', 't' }; +static const symbol s_4_35[6] = { 'o', 'n', 'k', 0xE9, 'n', 't' }; +static const symbol s_4_36[2] = { 'o', 't' }; +static const symbol s_4_37[3] = { 0xE9, 'r', 't' }; +static const symbol s_4_38[2] = { 0xF6, 't' }; +static const symbol s_4_39[3] = { 'h', 'e', 'z' }; +static const symbol s_4_40[3] = { 'h', 'o', 'z' }; +static const symbol s_4_41[3] = { 'h', 0xF6, 'z' }; +static const symbol s_4_42[2] = { 'v', 0xE1 }; +static const symbol s_4_43[2] = { 'v', 0xE9 }; + +static const struct among a_4[44] = +{ +/* 0 */ { 2, s_4_0, -1, -1, 0}, +/* 1 */ { 2, s_4_1, -1, -1, 0}, +/* 2 */ { 2, s_4_2, -1, -1, 0}, +/* 3 */ { 2, s_4_3, -1, -1, 0}, +/* 4 */ { 2, s_4_4, -1, -1, 0}, +/* 5 */ { 3, s_4_5, -1, -1, 0}, +/* 6 */ { 3, s_4_6, -1, -1, 0}, +/* 7 */ { 3, s_4_7, -1, -1, 0}, +/* 8 */ { 3, s_4_8, -1, -1, 0}, +/* 9 */ { 2, s_4_9, -1, -1, 0}, +/* 10 */ { 3, s_4_10, -1, -1, 0}, +/* 11 */ { 3, s_4_11, -1, -1, 0}, +/* 12 */ { 3, s_4_12, -1, -1, 0}, +/* 13 */ { 3, s_4_13, -1, -1, 0}, +/* 14 */ { 3, s_4_14, -1, -1, 0}, +/* 15 */ { 3, s_4_15, -1, -1, 0}, +/* 16 */ { 3, s_4_16, -1, -1, 0}, +/* 17 */ { 3, s_4_17, -1, -1, 0}, +/* 18 */ { 2, s_4_18, -1, -1, 0}, +/* 19 */ { 1, s_4_19, -1, -1, 0}, +/* 20 */ { 2, s_4_20, 19, -1, 0}, +/* 21 */ { 3, s_4_21, 20, -1, 0}, +/* 22 */ { 2, s_4_22, 19, -1, 0}, +/* 23 */ { 3, s_4_23, 22, -1, 0}, +/* 24 */ { 6, s_4_24, 22, -1, 0}, +/* 25 */ { 2, s_4_25, 19, -1, 0}, +/* 26 */ { 2, s_4_26, 19, -1, 0}, +/* 27 */ { 4, s_4_27, -1, -1, 0}, +/* 28 */ { 3, s_4_28, -1, -1, 0}, +/* 29 */ { 1, s_4_29, -1, -1, 0}, +/* 30 */ { 2, s_4_30, 29, -1, 0}, +/* 31 */ { 2, s_4_31, 29, -1, 0}, +/* 32 */ { 4, s_4_32, 29, -1, 0}, +/* 33 */ { 6, s_4_33, 32, -1, 0}, +/* 34 */ { 6, s_4_34, 32, -1, 0}, +/* 35 */ { 6, s_4_35, 32, -1, 0}, +/* 36 */ { 2, s_4_36, 29, -1, 0}, +/* 37 */ { 3, s_4_37, 29, -1, 0}, +/* 38 */ { 2, s_4_38, 29, -1, 0}, +/* 39 */ { 3, s_4_39, -1, -1, 0}, +/* 40 */ { 3, s_4_40, -1, -1, 0}, +/* 41 */ { 3, s_4_41, -1, -1, 0}, +/* 42 */ { 2, s_4_42, -1, -1, 0}, +/* 43 */ { 2, s_4_43, -1, -1, 0} +}; + +static const symbol s_5_0[2] = { 0xE1, 'n' }; +static const symbol s_5_1[2] = { 0xE9, 'n' }; +static const symbol s_5_2[6] = { 0xE1, 'n', 'k', 0xE9, 'n', 't' }; + +static const struct among a_5[3] = +{ +/* 0 */ { 2, s_5_0, -1, 2, 0}, +/* 1 */ { 2, s_5_1, -1, 1, 0}, +/* 2 */ { 6, s_5_2, -1, 2, 0} +}; + +static const symbol s_6_0[4] = { 's', 't', 'u', 'l' }; +static const symbol s_6_1[5] = { 'a', 's', 't', 'u', 'l' }; +static const symbol s_6_2[5] = { 0xE1, 's', 't', 'u', 'l' }; +static const symbol s_6_3[4] = { 's', 't', 0xFC, 'l' }; +static const symbol s_6_4[5] = { 'e', 's', 't', 0xFC, 'l' }; +static const symbol s_6_5[5] = { 0xE9, 's', 't', 0xFC, 'l' }; + +static const struct among a_6[6] = +{ +/* 0 */ { 4, s_6_0, -1, 1, 0}, +/* 1 */ { 5, s_6_1, 0, 1, 0}, +/* 2 */ { 5, s_6_2, 0, 2, 0}, +/* 3 */ { 4, s_6_3, -1, 1, 0}, +/* 4 */ { 5, s_6_4, 3, 1, 0}, +/* 5 */ { 5, s_6_5, 3, 3, 0} +}; + +static const symbol s_7_0[1] = { 0xE1 }; +static const symbol s_7_1[1] = { 0xE9 }; + +static const struct among a_7[2] = +{ +/* 0 */ { 1, s_7_0, -1, 1, 0}, +/* 1 */ { 1, s_7_1, -1, 1, 0} +}; + +static const symbol s_8_0[1] = { 'k' }; +static const symbol s_8_1[2] = { 'a', 'k' }; +static const symbol s_8_2[2] = { 'e', 'k' }; +static const symbol s_8_3[2] = { 'o', 'k' }; +static const symbol s_8_4[2] = { 0xE1, 'k' }; +static const symbol s_8_5[2] = { 0xE9, 'k' }; +static const symbol s_8_6[2] = { 0xF6, 'k' }; + +static const struct among a_8[7] = +{ +/* 0 */ { 1, s_8_0, -1, 3, 0}, +/* 1 */ { 2, s_8_1, 0, 3, 0}, +/* 2 */ { 2, s_8_2, 0, 3, 0}, +/* 3 */ { 2, s_8_3, 0, 3, 0}, +/* 4 */ { 2, s_8_4, 0, 1, 0}, +/* 5 */ { 2, s_8_5, 0, 2, 0}, +/* 6 */ { 2, s_8_6, 0, 3, 0} +}; + +static const symbol s_9_0[2] = { 0xE9, 'i' }; +static const symbol s_9_1[3] = { 0xE1, 0xE9, 'i' }; +static const symbol s_9_2[3] = { 0xE9, 0xE9, 'i' }; +static const symbol s_9_3[1] = { 0xE9 }; +static const symbol s_9_4[2] = { 'k', 0xE9 }; +static const symbol s_9_5[3] = { 'a', 'k', 0xE9 }; +static const symbol s_9_6[3] = { 'e', 'k', 0xE9 }; +static const symbol s_9_7[3] = { 'o', 'k', 0xE9 }; +static const symbol s_9_8[3] = { 0xE1, 'k', 0xE9 }; +static const symbol s_9_9[3] = { 0xE9, 'k', 0xE9 }; +static const symbol s_9_10[3] = { 0xF6, 'k', 0xE9 }; +static const symbol s_9_11[2] = { 0xE9, 0xE9 }; + +static const struct among a_9[12] = +{ +/* 0 */ { 2, s_9_0, -1, 1, 0}, +/* 1 */ { 3, s_9_1, 0, 3, 0}, +/* 2 */ { 3, s_9_2, 0, 2, 0}, +/* 3 */ { 1, s_9_3, -1, 1, 0}, +/* 4 */ { 2, s_9_4, 3, 1, 0}, +/* 5 */ { 3, s_9_5, 4, 1, 0}, +/* 6 */ { 3, s_9_6, 4, 1, 0}, +/* 7 */ { 3, s_9_7, 4, 1, 0}, +/* 8 */ { 3, s_9_8, 4, 3, 0}, +/* 9 */ { 3, s_9_9, 4, 2, 0}, +/* 10 */ { 3, s_9_10, 4, 1, 0}, +/* 11 */ { 2, s_9_11, 3, 2, 0} +}; + +static const symbol s_10_0[1] = { 'a' }; +static const symbol s_10_1[2] = { 'j', 'a' }; +static const symbol s_10_2[1] = { 'd' }; +static const symbol s_10_3[2] = { 'a', 'd' }; +static const symbol s_10_4[2] = { 'e', 'd' }; +static const symbol s_10_5[2] = { 'o', 'd' }; +static const symbol s_10_6[2] = { 0xE1, 'd' }; +static const symbol s_10_7[2] = { 0xE9, 'd' }; +static const symbol s_10_8[2] = { 0xF6, 'd' }; +static const symbol s_10_9[1] = { 'e' }; +static const symbol s_10_10[2] = { 'j', 'e' }; +static const symbol s_10_11[2] = { 'n', 'k' }; +static const symbol s_10_12[3] = { 'u', 'n', 'k' }; +static const symbol s_10_13[3] = { 0xE1, 'n', 'k' }; +static const symbol s_10_14[3] = { 0xE9, 'n', 'k' }; +static const symbol s_10_15[3] = { 0xFC, 'n', 'k' }; +static const symbol s_10_16[2] = { 'u', 'k' }; +static const symbol s_10_17[3] = { 'j', 'u', 'k' }; +static const symbol s_10_18[4] = { 0xE1, 'j', 'u', 'k' }; +static const symbol s_10_19[2] = { 0xFC, 'k' }; +static const symbol s_10_20[3] = { 'j', 0xFC, 'k' }; +static const symbol s_10_21[4] = { 0xE9, 'j', 0xFC, 'k' }; +static const symbol s_10_22[1] = { 'm' }; +static const symbol s_10_23[2] = { 'a', 'm' }; +static const symbol s_10_24[2] = { 'e', 'm' }; +static const symbol s_10_25[2] = { 'o', 'm' }; +static const symbol s_10_26[2] = { 0xE1, 'm' }; +static const symbol s_10_27[2] = { 0xE9, 'm' }; +static const symbol s_10_28[1] = { 'o' }; +static const symbol s_10_29[1] = { 0xE1 }; +static const symbol s_10_30[1] = { 0xE9 }; + +static const struct among a_10[31] = +{ +/* 0 */ { 1, s_10_0, -1, 1, 0}, +/* 1 */ { 2, s_10_1, 0, 1, 0}, +/* 2 */ { 1, s_10_2, -1, 1, 0}, +/* 3 */ { 2, s_10_3, 2, 1, 0}, +/* 4 */ { 2, s_10_4, 2, 1, 0}, +/* 5 */ { 2, s_10_5, 2, 1, 0}, +/* 6 */ { 2, s_10_6, 2, 2, 0}, +/* 7 */ { 2, s_10_7, 2, 3, 0}, +/* 8 */ { 2, s_10_8, 2, 1, 0}, +/* 9 */ { 1, s_10_9, -1, 1, 0}, +/* 10 */ { 2, s_10_10, 9, 1, 0}, +/* 11 */ { 2, s_10_11, -1, 1, 0}, +/* 12 */ { 3, s_10_12, 11, 1, 0}, +/* 13 */ { 3, s_10_13, 11, 2, 0}, +/* 14 */ { 3, s_10_14, 11, 3, 0}, +/* 15 */ { 3, s_10_15, 11, 1, 0}, +/* 16 */ { 2, s_10_16, -1, 1, 0}, +/* 17 */ { 3, s_10_17, 16, 1, 0}, +/* 18 */ { 4, s_10_18, 17, 2, 0}, +/* 19 */ { 2, s_10_19, -1, 1, 0}, +/* 20 */ { 3, s_10_20, 19, 1, 0}, +/* 21 */ { 4, s_10_21, 20, 3, 0}, +/* 22 */ { 1, s_10_22, -1, 1, 0}, +/* 23 */ { 2, s_10_23, 22, 1, 0}, +/* 24 */ { 2, s_10_24, 22, 1, 0}, +/* 25 */ { 2, s_10_25, 22, 1, 0}, +/* 26 */ { 2, s_10_26, 22, 2, 0}, +/* 27 */ { 2, s_10_27, 22, 3, 0}, +/* 28 */ { 1, s_10_28, -1, 1, 0}, +/* 29 */ { 1, s_10_29, -1, 2, 0}, +/* 30 */ { 1, s_10_30, -1, 3, 0} +}; + +static const symbol s_11_0[2] = { 'i', 'd' }; +static const symbol s_11_1[3] = { 'a', 'i', 'd' }; +static const symbol s_11_2[4] = { 'j', 'a', 'i', 'd' }; +static const symbol s_11_3[3] = { 'e', 'i', 'd' }; +static const symbol s_11_4[4] = { 'j', 'e', 'i', 'd' }; +static const symbol s_11_5[3] = { 0xE1, 'i', 'd' }; +static const symbol s_11_6[3] = { 0xE9, 'i', 'd' }; +static const symbol s_11_7[1] = { 'i' }; +static const symbol s_11_8[2] = { 'a', 'i' }; +static const symbol s_11_9[3] = { 'j', 'a', 'i' }; +static const symbol s_11_10[2] = { 'e', 'i' }; +static const symbol s_11_11[3] = { 'j', 'e', 'i' }; +static const symbol s_11_12[2] = { 0xE1, 'i' }; +static const symbol s_11_13[2] = { 0xE9, 'i' }; +static const symbol s_11_14[4] = { 'i', 't', 'e', 'k' }; +static const symbol s_11_15[5] = { 'e', 'i', 't', 'e', 'k' }; +static const symbol s_11_16[6] = { 'j', 'e', 'i', 't', 'e', 'k' }; +static const symbol s_11_17[5] = { 0xE9, 'i', 't', 'e', 'k' }; +static const symbol s_11_18[2] = { 'i', 'k' }; +static const symbol s_11_19[3] = { 'a', 'i', 'k' }; +static const symbol s_11_20[4] = { 'j', 'a', 'i', 'k' }; +static const symbol s_11_21[3] = { 'e', 'i', 'k' }; +static const symbol s_11_22[4] = { 'j', 'e', 'i', 'k' }; +static const symbol s_11_23[3] = { 0xE1, 'i', 'k' }; +static const symbol s_11_24[3] = { 0xE9, 'i', 'k' }; +static const symbol s_11_25[3] = { 'i', 'n', 'k' }; +static const symbol s_11_26[4] = { 'a', 'i', 'n', 'k' }; +static const symbol s_11_27[5] = { 'j', 'a', 'i', 'n', 'k' }; +static const symbol s_11_28[4] = { 'e', 'i', 'n', 'k' }; +static const symbol s_11_29[5] = { 'j', 'e', 'i', 'n', 'k' }; +static const symbol s_11_30[4] = { 0xE1, 'i', 'n', 'k' }; +static const symbol s_11_31[4] = { 0xE9, 'i', 'n', 'k' }; +static const symbol s_11_32[5] = { 'a', 'i', 't', 'o', 'k' }; +static const symbol s_11_33[6] = { 'j', 'a', 'i', 't', 'o', 'k' }; +static const symbol s_11_34[5] = { 0xE1, 'i', 't', 'o', 'k' }; +static const symbol s_11_35[2] = { 'i', 'm' }; +static const symbol s_11_36[3] = { 'a', 'i', 'm' }; +static const symbol s_11_37[4] = { 'j', 'a', 'i', 'm' }; +static const symbol s_11_38[3] = { 'e', 'i', 'm' }; +static const symbol s_11_39[4] = { 'j', 'e', 'i', 'm' }; +static const symbol s_11_40[3] = { 0xE1, 'i', 'm' }; +static const symbol s_11_41[3] = { 0xE9, 'i', 'm' }; + +static const struct among a_11[42] = +{ +/* 0 */ { 2, s_11_0, -1, 1, 0}, +/* 1 */ { 3, s_11_1, 0, 1, 0}, +/* 2 */ { 4, s_11_2, 1, 1, 0}, +/* 3 */ { 3, s_11_3, 0, 1, 0}, +/* 4 */ { 4, s_11_4, 3, 1, 0}, +/* 5 */ { 3, s_11_5, 0, 2, 0}, +/* 6 */ { 3, s_11_6, 0, 3, 0}, +/* 7 */ { 1, s_11_7, -1, 1, 0}, +/* 8 */ { 2, s_11_8, 7, 1, 0}, +/* 9 */ { 3, s_11_9, 8, 1, 0}, +/* 10 */ { 2, s_11_10, 7, 1, 0}, +/* 11 */ { 3, s_11_11, 10, 1, 0}, +/* 12 */ { 2, s_11_12, 7, 2, 0}, +/* 13 */ { 2, s_11_13, 7, 3, 0}, +/* 14 */ { 4, s_11_14, -1, 1, 0}, +/* 15 */ { 5, s_11_15, 14, 1, 0}, +/* 16 */ { 6, s_11_16, 15, 1, 0}, +/* 17 */ { 5, s_11_17, 14, 3, 0}, +/* 18 */ { 2, s_11_18, -1, 1, 0}, +/* 19 */ { 3, s_11_19, 18, 1, 0}, +/* 20 */ { 4, s_11_20, 19, 1, 0}, +/* 21 */ { 3, s_11_21, 18, 1, 0}, +/* 22 */ { 4, s_11_22, 21, 1, 0}, +/* 23 */ { 3, s_11_23, 18, 2, 0}, +/* 24 */ { 3, s_11_24, 18, 3, 0}, +/* 25 */ { 3, s_11_25, -1, 1, 0}, +/* 26 */ { 4, s_11_26, 25, 1, 0}, +/* 27 */ { 5, s_11_27, 26, 1, 0}, +/* 28 */ { 4, s_11_28, 25, 1, 0}, +/* 29 */ { 5, s_11_29, 28, 1, 0}, +/* 30 */ { 4, s_11_30, 25, 2, 0}, +/* 31 */ { 4, s_11_31, 25, 3, 0}, +/* 32 */ { 5, s_11_32, -1, 1, 0}, +/* 33 */ { 6, s_11_33, 32, 1, 0}, +/* 34 */ { 5, s_11_34, -1, 2, 0}, +/* 35 */ { 2, s_11_35, -1, 1, 0}, +/* 36 */ { 3, s_11_36, 35, 1, 0}, +/* 37 */ { 4, s_11_37, 36, 1, 0}, +/* 38 */ { 3, s_11_38, 35, 1, 0}, +/* 39 */ { 4, s_11_39, 38, 1, 0}, +/* 40 */ { 3, s_11_40, 35, 2, 0}, +/* 41 */ { 3, s_11_41, 35, 3, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14 }; + +static const symbol s_0[] = { 'a' }; +static const symbol s_1[] = { 'e' }; +static const symbol s_2[] = { 'e' }; +static const symbol s_3[] = { 'a' }; +static const symbol s_4[] = { 'a' }; +static const symbol s_5[] = { 'e' }; +static const symbol s_6[] = { 'a' }; +static const symbol s_7[] = { 'e' }; +static const symbol s_8[] = { 'e' }; +static const symbol s_9[] = { 'a' }; +static const symbol s_10[] = { 'a' }; +static const symbol s_11[] = { 'e' }; +static const symbol s_12[] = { 'a' }; +static const symbol s_13[] = { 'e' }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 46 */ + { int c1 = z->c; /* or, line 51 */ + if (in_grouping(z, g_v, 97, 252, 0)) goto lab1; /* grouping v, line 48 */ + if (in_grouping(z, g_v, 97, 252, 1) < 0) goto lab1; /* goto */ /* non v, line 48 */ + { int c2 = z->c; /* or, line 49 */ + if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3; /* among, line 49 */ + if (!(find_among(z, a_0, 8))) goto lab3; + goto lab2; + lab3: + z->c = c2; + if (z->c >= z->l) goto lab1; + z->c++; /* next, line 49 */ + } + lab2: + z->I[0] = z->c; /* setmark p1, line 50 */ + goto lab0; + lab1: + z->c = c1; + if (out_grouping(z, g_v, 97, 252, 0)) return 0; /* non v, line 53 */ + { /* gopast */ /* grouping v, line 53 */ + int ret = out_grouping(z, g_v, 97, 252, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 53 */ + } +lab0: + return 1; +} + +static int r_R1(struct SN_env * z) { /* backwardmode */ + if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 58 */ + return 1; +} + +static int r_v_ending(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 61 */ + if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; /* substring, line 61 */ + among_var = find_among_b(z, a_1, 2); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 61 */ + { int ret = r_R1(z); /* call R1, line 61 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 61 */ + case 1: + { int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_1); /* <-, line 63 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_double(struct SN_env * z) { /* backwardmode */ + { int m_test1 = z->l - z->c; /* test, line 68 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 68 */ + if (!(find_among_b(z, a_2, 23))) return 0; + z->c = z->l - m_test1; + } + return 1; +} + +static int r_undouble(struct SN_env * z) { /* backwardmode */ + if (z->c <= z->lb) return 0; + z->c--; /* next, line 73 */ + z->ket = z->c; /* [, line 73 */ + { int ret = z->c - 1; /* hop, line 73 */ + if (z->lb > ret || ret > z->l) return 0; + z->c = ret; + } + z->bra = z->c; /* ], line 73 */ + { int ret = slice_del(z); /* delete, line 73 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_instrum(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 77 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 77 */ + if (!(find_among_b(z, a_3, 2))) return 0; + z->bra = z->c; /* ], line 77 */ + { int ret = r_R1(z); /* call R1, line 77 */ + if (ret <= 0) return ret; + } + { int ret = r_double(z); /* call double, line 78 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 81 */ + if (ret < 0) return ret; + } + { int ret = r_undouble(z); /* call undouble, line 82 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_case(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 87 */ + if (!(find_among_b(z, a_4, 44))) return 0; /* substring, line 87 */ + z->bra = z->c; /* ], line 87 */ + { int ret = r_R1(z); /* call R1, line 87 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 111 */ + if (ret < 0) return ret; + } + { int ret = r_v_ending(z); /* call v_ending, line 112 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_case_special(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 116 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0; /* substring, line 116 */ + among_var = find_among_b(z, a_5, 3); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 116 */ + { int ret = r_R1(z); /* call R1, line 116 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 116 */ + case 1: + { int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_3); /* <-, line 118 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_case_other(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 124 */ + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 124 */ + among_var = find_among_b(z, a_6, 6); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 124 */ + { int ret = r_R1(z); /* call R1, line 124 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 124 */ + case 1: + { int ret = slice_del(z); /* delete, line 125 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_4); /* <-, line 127 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_5); /* <-, line 128 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_factive(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 133 */ + if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; /* substring, line 133 */ + if (!(find_among_b(z, a_7, 2))) return 0; + z->bra = z->c; /* ], line 133 */ + { int ret = r_R1(z); /* call R1, line 133 */ + if (ret <= 0) return ret; + } + { int ret = r_double(z); /* call double, line 134 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 137 */ + if (ret < 0) return ret; + } + { int ret = r_undouble(z); /* call undouble, line 138 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_plural(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 142 */ + if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0; /* substring, line 142 */ + among_var = find_among_b(z, a_8, 7); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 142 */ + { int ret = r_R1(z); /* call R1, line 142 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 142 */ + case 1: + { int ret = slice_from_s(z, 1, s_6); /* <-, line 143 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_7); /* <-, line 144 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 145 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_owned(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 154 */ + if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0; /* substring, line 154 */ + among_var = find_among_b(z, a_9, 12); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 154 */ + { int ret = r_R1(z); /* call R1, line 154 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 154 */ + case 1: + { int ret = slice_del(z); /* delete, line 155 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_8); /* <-, line 156 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_9); /* <-, line 157 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_sing_owner(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 168 */ + among_var = find_among_b(z, a_10, 31); /* substring, line 168 */ + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 168 */ + { int ret = r_R1(z); /* call R1, line 168 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 168 */ + case 1: + { int ret = slice_del(z); /* delete, line 169 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_10); /* <-, line 170 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_11); /* <-, line 171 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_plur_owner(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 193 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 193 */ + among_var = find_among_b(z, a_11, 42); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 193 */ + { int ret = r_R1(z); /* call R1, line 193 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 193 */ + case 1: + { int ret = slice_del(z); /* delete, line 194 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_12); /* <-, line 195 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_13); /* <-, line 196 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +extern int hungarian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 229 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 229 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + z->lb = z->c; z->c = z->l; /* backwards, line 230 */ + + { int m2 = z->l - z->c; (void)m2; /* do, line 231 */ + { int ret = r_instrum(z); /* call instrum, line 231 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + lab1: + z->c = z->l - m2; + } + { int m3 = z->l - z->c; (void)m3; /* do, line 232 */ + { int ret = r_case(z); /* call case, line 232 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + lab2: + z->c = z->l - m3; + } + { int m4 = z->l - z->c; (void)m4; /* do, line 233 */ + { int ret = r_case_special(z); /* call case_special, line 233 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + lab3: + z->c = z->l - m4; + } + { int m5 = z->l - z->c; (void)m5; /* do, line 234 */ + { int ret = r_case_other(z); /* call case_other, line 234 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + lab4: + z->c = z->l - m5; + } + { int m6 = z->l - z->c; (void)m6; /* do, line 235 */ + { int ret = r_factive(z); /* call factive, line 235 */ + if (ret == 0) goto lab5; + if (ret < 0) return ret; + } + lab5: + z->c = z->l - m6; + } + { int m7 = z->l - z->c; (void)m7; /* do, line 236 */ + { int ret = r_owned(z); /* call owned, line 236 */ + if (ret == 0) goto lab6; + if (ret < 0) return ret; + } + lab6: + z->c = z->l - m7; + } + { int m8 = z->l - z->c; (void)m8; /* do, line 237 */ + { int ret = r_sing_owner(z); /* call sing_owner, line 237 */ + if (ret == 0) goto lab7; + if (ret < 0) return ret; + } + lab7: + z->c = z->l - m8; + } + { int m9 = z->l - z->c; (void)m9; /* do, line 238 */ + { int ret = r_plur_owner(z); /* call plur_owner, line 238 */ + if (ret == 0) goto lab8; + if (ret < 0) return ret; + } + lab8: + z->c = z->l - m9; + } + { int m10 = z->l - z->c; (void)m10; /* do, line 239 */ + { int ret = r_plural(z); /* call plural, line 239 */ + if (ret == 0) goto lab9; + if (ret < 0) return ret; + } + lab9: + z->c = z->l - m10; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * hungarian_ISO_8859_2_create_env(void) { return SN_create_env(0, 1, 0); } + +extern void hungarian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c new file mode 100644 index 0000000..a085e09 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c @@ -0,0 +1,978 @@ +/* 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 romanian_ISO_8859_2_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_vowel_suffix(struct SN_env * z); +static int r_verb_suffix(struct SN_env * z); +static int r_combo_suffix(struct SN_env * z); +static int r_standard_suffix(struct SN_env * z); +static int r_step_0(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * romanian_ISO_8859_2_create_env(void); +extern void romanian_ISO_8859_2_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[1] = { 'I' }; +static const symbol s_0_2[1] = { 'U' }; + +static const struct among a_0[3] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 1, s_0_1, 0, 1, 0}, +/* 2 */ { 1, s_0_2, 0, 2, 0} +}; + +static const symbol s_1_0[2] = { 'e', 'a' }; +static const symbol s_1_1[4] = { 'a', 0xFE, 'i', 'a' }; +static const symbol s_1_2[3] = { 'a', 'u', 'a' }; +static const symbol s_1_3[3] = { 'i', 'u', 'a' }; +static const symbol s_1_4[4] = { 'a', 0xFE, 'i', 'e' }; +static const symbol s_1_5[3] = { 'e', 'l', 'e' }; +static const symbol s_1_6[3] = { 'i', 'l', 'e' }; +static const symbol s_1_7[4] = { 'i', 'i', 'l', 'e' }; +static const symbol s_1_8[3] = { 'i', 'e', 'i' }; +static const symbol s_1_9[4] = { 'a', 't', 'e', 'i' }; +static const symbol s_1_10[2] = { 'i', 'i' }; +static const symbol s_1_11[4] = { 'u', 'l', 'u', 'i' }; +static const symbol s_1_12[2] = { 'u', 'l' }; +static const symbol s_1_13[4] = { 'e', 'l', 'o', 'r' }; +static const symbol s_1_14[4] = { 'i', 'l', 'o', 'r' }; +static const symbol s_1_15[5] = { 'i', 'i', 'l', 'o', 'r' }; + +static const struct among a_1[16] = +{ +/* 0 */ { 2, s_1_0, -1, 3, 0}, +/* 1 */ { 4, s_1_1, -1, 7, 0}, +/* 2 */ { 3, s_1_2, -1, 2, 0}, +/* 3 */ { 3, s_1_3, -1, 4, 0}, +/* 4 */ { 4, s_1_4, -1, 7, 0}, +/* 5 */ { 3, s_1_5, -1, 3, 0}, +/* 6 */ { 3, s_1_6, -1, 5, 0}, +/* 7 */ { 4, s_1_7, 6, 4, 0}, +/* 8 */ { 3, s_1_8, -1, 4, 0}, +/* 9 */ { 4, s_1_9, -1, 6, 0}, +/* 10 */ { 2, s_1_10, -1, 4, 0}, +/* 11 */ { 4, s_1_11, -1, 1, 0}, +/* 12 */ { 2, s_1_12, -1, 1, 0}, +/* 13 */ { 4, s_1_13, -1, 3, 0}, +/* 14 */ { 4, s_1_14, -1, 4, 0}, +/* 15 */ { 5, s_1_15, 14, 4, 0} +}; + +static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' }; +static const symbol s_2_1[5] = { 'i', 'c', 'i', 'v', 'a' }; +static const symbol s_2_2[5] = { 'a', 't', 'i', 'v', 'a' }; +static const symbol s_2_3[5] = { 'i', 't', 'i', 'v', 'a' }; +static const symbol s_2_4[5] = { 'i', 'c', 'a', 'l', 'e' }; +static const symbol s_2_5[6] = { 'a', 0xFE, 'i', 'u', 'n', 'e' }; +static const symbol s_2_6[6] = { 'i', 0xFE, 'i', 'u', 'n', 'e' }; +static const symbol s_2_7[6] = { 'a', 't', 'o', 'a', 'r', 'e' }; +static const symbol s_2_8[6] = { 'i', 't', 'o', 'a', 'r', 'e' }; +static const symbol s_2_9[6] = { 0xE3, 't', 'o', 'a', 'r', 'e' }; +static const symbol s_2_10[7] = { 'i', 'c', 'i', 't', 'a', 't', 'e' }; +static const symbol s_2_11[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' }; +static const symbol s_2_12[9] = { 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' }; +static const symbol s_2_13[7] = { 'i', 'v', 'i', 't', 'a', 't', 'e' }; +static const symbol s_2_14[5] = { 'i', 'c', 'i', 'v', 'e' }; +static const symbol s_2_15[5] = { 'a', 't', 'i', 'v', 'e' }; +static const symbol s_2_16[5] = { 'i', 't', 'i', 'v', 'e' }; +static const symbol s_2_17[5] = { 'i', 'c', 'a', 'l', 'i' }; +static const symbol s_2_18[5] = { 'a', 't', 'o', 'r', 'i' }; +static const symbol s_2_19[7] = { 'i', 'c', 'a', 't', 'o', 'r', 'i' }; +static const symbol s_2_20[5] = { 'i', 't', 'o', 'r', 'i' }; +static const symbol s_2_21[5] = { 0xE3, 't', 'o', 'r', 'i' }; +static const symbol s_2_22[7] = { 'i', 'c', 'i', 't', 'a', 't', 'i' }; +static const symbol s_2_23[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i' }; +static const symbol s_2_24[7] = { 'i', 'v', 'i', 't', 'a', 't', 'i' }; +static const symbol s_2_25[5] = { 'i', 'c', 'i', 'v', 'i' }; +static const symbol s_2_26[5] = { 'a', 't', 'i', 'v', 'i' }; +static const symbol s_2_27[5] = { 'i', 't', 'i', 'v', 'i' }; +static const symbol s_2_28[6] = { 'i', 'c', 'i', 't', 0xE3, 'i' }; +static const symbol s_2_29[8] = { 'a', 'b', 'i', 'l', 'i', 't', 0xE3, 'i' }; +static const symbol s_2_30[6] = { 'i', 'v', 'i', 't', 0xE3, 'i' }; +static const symbol s_2_31[7] = { 'i', 'c', 'i', 't', 0xE3, 0xFE, 'i' }; +static const symbol s_2_32[9] = { 'a', 'b', 'i', 'l', 'i', 't', 0xE3, 0xFE, 'i' }; +static const symbol s_2_33[7] = { 'i', 'v', 'i', 't', 0xE3, 0xFE, 'i' }; +static const symbol s_2_34[4] = { 'i', 'c', 'a', 'l' }; +static const symbol s_2_35[4] = { 'a', 't', 'o', 'r' }; +static const symbol s_2_36[6] = { 'i', 'c', 'a', 't', 'o', 'r' }; +static const symbol s_2_37[4] = { 'i', 't', 'o', 'r' }; +static const symbol s_2_38[4] = { 0xE3, 't', 'o', 'r' }; +static const symbol s_2_39[4] = { 'i', 'c', 'i', 'v' }; +static const symbol s_2_40[4] = { 'a', 't', 'i', 'v' }; +static const symbol s_2_41[4] = { 'i', 't', 'i', 'v' }; +static const symbol s_2_42[5] = { 'i', 'c', 'a', 'l', 0xE3 }; +static const symbol s_2_43[5] = { 'i', 'c', 'i', 'v', 0xE3 }; +static const symbol s_2_44[5] = { 'a', 't', 'i', 'v', 0xE3 }; +static const symbol s_2_45[5] = { 'i', 't', 'i', 'v', 0xE3 }; + +static const struct among a_2[46] = +{ +/* 0 */ { 5, s_2_0, -1, 4, 0}, +/* 1 */ { 5, s_2_1, -1, 4, 0}, +/* 2 */ { 5, s_2_2, -1, 5, 0}, +/* 3 */ { 5, s_2_3, -1, 6, 0}, +/* 4 */ { 5, s_2_4, -1, 4, 0}, +/* 5 */ { 6, s_2_5, -1, 5, 0}, +/* 6 */ { 6, s_2_6, -1, 6, 0}, +/* 7 */ { 6, s_2_7, -1, 5, 0}, +/* 8 */ { 6, s_2_8, -1, 6, 0}, +/* 9 */ { 6, s_2_9, -1, 5, 0}, +/* 10 */ { 7, s_2_10, -1, 4, 0}, +/* 11 */ { 9, s_2_11, -1, 1, 0}, +/* 12 */ { 9, s_2_12, -1, 2, 0}, +/* 13 */ { 7, s_2_13, -1, 3, 0}, +/* 14 */ { 5, s_2_14, -1, 4, 0}, +/* 15 */ { 5, s_2_15, -1, 5, 0}, +/* 16 */ { 5, s_2_16, -1, 6, 0}, +/* 17 */ { 5, s_2_17, -1, 4, 0}, +/* 18 */ { 5, s_2_18, -1, 5, 0}, +/* 19 */ { 7, s_2_19, 18, 4, 0}, +/* 20 */ { 5, s_2_20, -1, 6, 0}, +/* 21 */ { 5, s_2_21, -1, 5, 0}, +/* 22 */ { 7, s_2_22, -1, 4, 0}, +/* 23 */ { 9, s_2_23, -1, 1, 0}, +/* 24 */ { 7, s_2_24, -1, 3, 0}, +/* 25 */ { 5, s_2_25, -1, 4, 0}, +/* 26 */ { 5, s_2_26, -1, 5, 0}, +/* 27 */ { 5, s_2_27, -1, 6, 0}, +/* 28 */ { 6, s_2_28, -1, 4, 0}, +/* 29 */ { 8, s_2_29, -1, 1, 0}, +/* 30 */ { 6, s_2_30, -1, 3, 0}, +/* 31 */ { 7, s_2_31, -1, 4, 0}, +/* 32 */ { 9, s_2_32, -1, 1, 0}, +/* 33 */ { 7, s_2_33, -1, 3, 0}, +/* 34 */ { 4, s_2_34, -1, 4, 0}, +/* 35 */ { 4, s_2_35, -1, 5, 0}, +/* 36 */ { 6, s_2_36, 35, 4, 0}, +/* 37 */ { 4, s_2_37, -1, 6, 0}, +/* 38 */ { 4, s_2_38, -1, 5, 0}, +/* 39 */ { 4, s_2_39, -1, 4, 0}, +/* 40 */ { 4, s_2_40, -1, 5, 0}, +/* 41 */ { 4, s_2_41, -1, 6, 0}, +/* 42 */ { 5, s_2_42, -1, 4, 0}, +/* 43 */ { 5, s_2_43, -1, 4, 0}, +/* 44 */ { 5, s_2_44, -1, 5, 0}, +/* 45 */ { 5, s_2_45, -1, 6, 0} +}; + +static const symbol s_3_0[3] = { 'i', 'c', 'a' }; +static const symbol s_3_1[5] = { 'a', 'b', 'i', 'l', 'a' }; +static const symbol s_3_2[5] = { 'i', 'b', 'i', 'l', 'a' }; +static const symbol s_3_3[4] = { 'o', 'a', 's', 'a' }; +static const symbol s_3_4[3] = { 'a', 't', 'a' }; +static const symbol s_3_5[3] = { 'i', 't', 'a' }; +static const symbol s_3_6[4] = { 'a', 'n', 't', 'a' }; +static const symbol s_3_7[4] = { 'i', 's', 't', 'a' }; +static const symbol s_3_8[3] = { 'u', 't', 'a' }; +static const symbol s_3_9[3] = { 'i', 'v', 'a' }; +static const symbol s_3_10[2] = { 'i', 'c' }; +static const symbol s_3_11[3] = { 'i', 'c', 'e' }; +static const symbol s_3_12[5] = { 'a', 'b', 'i', 'l', 'e' }; +static const symbol s_3_13[5] = { 'i', 'b', 'i', 'l', 'e' }; +static const symbol s_3_14[4] = { 'i', 's', 'm', 'e' }; +static const symbol s_3_15[4] = { 'i', 'u', 'n', 'e' }; +static const symbol s_3_16[4] = { 'o', 'a', 's', 'e' }; +static const symbol s_3_17[3] = { 'a', 't', 'e' }; +static const symbol s_3_18[5] = { 'i', 't', 'a', 't', 'e' }; +static const symbol s_3_19[3] = { 'i', 't', 'e' }; +static const symbol s_3_20[4] = { 'a', 'n', 't', 'e' }; +static const symbol s_3_21[4] = { 'i', 's', 't', 'e' }; +static const symbol s_3_22[3] = { 'u', 't', 'e' }; +static const symbol s_3_23[3] = { 'i', 'v', 'e' }; +static const symbol s_3_24[3] = { 'i', 'c', 'i' }; +static const symbol s_3_25[5] = { 'a', 'b', 'i', 'l', 'i' }; +static const symbol s_3_26[5] = { 'i', 'b', 'i', 'l', 'i' }; +static const symbol s_3_27[4] = { 'i', 'u', 'n', 'i' }; +static const symbol s_3_28[5] = { 'a', 't', 'o', 'r', 'i' }; +static const symbol s_3_29[3] = { 'o', 's', 'i' }; +static const symbol s_3_30[3] = { 'a', 't', 'i' }; +static const symbol s_3_31[5] = { 'i', 't', 'a', 't', 'i' }; +static const symbol s_3_32[3] = { 'i', 't', 'i' }; +static const symbol s_3_33[4] = { 'a', 'n', 't', 'i' }; +static const symbol s_3_34[4] = { 'i', 's', 't', 'i' }; +static const symbol s_3_35[3] = { 'u', 't', 'i' }; +static const symbol s_3_36[4] = { 'i', 0xBA, 't', 'i' }; +static const symbol s_3_37[3] = { 'i', 'v', 'i' }; +static const symbol s_3_38[3] = { 'o', 0xBA, 'i' }; +static const symbol s_3_39[4] = { 'i', 't', 0xE3, 'i' }; +static const symbol s_3_40[5] = { 'i', 't', 0xE3, 0xFE, 'i' }; +static const symbol s_3_41[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_3_42[4] = { 'i', 'b', 'i', 'l' }; +static const symbol s_3_43[3] = { 'i', 's', 'm' }; +static const symbol s_3_44[4] = { 'a', 't', 'o', 'r' }; +static const symbol s_3_45[2] = { 'o', 's' }; +static const symbol s_3_46[2] = { 'a', 't' }; +static const symbol s_3_47[2] = { 'i', 't' }; +static const symbol s_3_48[3] = { 'a', 'n', 't' }; +static const symbol s_3_49[3] = { 'i', 's', 't' }; +static const symbol s_3_50[2] = { 'u', 't' }; +static const symbol s_3_51[2] = { 'i', 'v' }; +static const symbol s_3_52[3] = { 'i', 'c', 0xE3 }; +static const symbol s_3_53[5] = { 'a', 'b', 'i', 'l', 0xE3 }; +static const symbol s_3_54[5] = { 'i', 'b', 'i', 'l', 0xE3 }; +static const symbol s_3_55[4] = { 'o', 'a', 's', 0xE3 }; +static const symbol s_3_56[3] = { 'a', 't', 0xE3 }; +static const symbol s_3_57[3] = { 'i', 't', 0xE3 }; +static const symbol s_3_58[4] = { 'a', 'n', 't', 0xE3 }; +static const symbol s_3_59[4] = { 'i', 's', 't', 0xE3 }; +static const symbol s_3_60[3] = { 'u', 't', 0xE3 }; +static const symbol s_3_61[3] = { 'i', 'v', 0xE3 }; + +static const struct among a_3[62] = +{ +/* 0 */ { 3, s_3_0, -1, 1, 0}, +/* 1 */ { 5, s_3_1, -1, 1, 0}, +/* 2 */ { 5, s_3_2, -1, 1, 0}, +/* 3 */ { 4, s_3_3, -1, 1, 0}, +/* 4 */ { 3, s_3_4, -1, 1, 0}, +/* 5 */ { 3, s_3_5, -1, 1, 0}, +/* 6 */ { 4, s_3_6, -1, 1, 0}, +/* 7 */ { 4, s_3_7, -1, 3, 0}, +/* 8 */ { 3, s_3_8, -1, 1, 0}, +/* 9 */ { 3, s_3_9, -1, 1, 0}, +/* 10 */ { 2, s_3_10, -1, 1, 0}, +/* 11 */ { 3, s_3_11, -1, 1, 0}, +/* 12 */ { 5, s_3_12, -1, 1, 0}, +/* 13 */ { 5, s_3_13, -1, 1, 0}, +/* 14 */ { 4, s_3_14, -1, 3, 0}, +/* 15 */ { 4, s_3_15, -1, 2, 0}, +/* 16 */ { 4, s_3_16, -1, 1, 0}, +/* 17 */ { 3, s_3_17, -1, 1, 0}, +/* 18 */ { 5, s_3_18, 17, 1, 0}, +/* 19 */ { 3, s_3_19, -1, 1, 0}, +/* 20 */ { 4, s_3_20, -1, 1, 0}, +/* 21 */ { 4, s_3_21, -1, 3, 0}, +/* 22 */ { 3, s_3_22, -1, 1, 0}, +/* 23 */ { 3, s_3_23, -1, 1, 0}, +/* 24 */ { 3, s_3_24, -1, 1, 0}, +/* 25 */ { 5, s_3_25, -1, 1, 0}, +/* 26 */ { 5, s_3_26, -1, 1, 0}, +/* 27 */ { 4, s_3_27, -1, 2, 0}, +/* 28 */ { 5, s_3_28, -1, 1, 0}, +/* 29 */ { 3, s_3_29, -1, 1, 0}, +/* 30 */ { 3, s_3_30, -1, 1, 0}, +/* 31 */ { 5, s_3_31, 30, 1, 0}, +/* 32 */ { 3, s_3_32, -1, 1, 0}, +/* 33 */ { 4, s_3_33, -1, 1, 0}, +/* 34 */ { 4, s_3_34, -1, 3, 0}, +/* 35 */ { 3, s_3_35, -1, 1, 0}, +/* 36 */ { 4, s_3_36, -1, 3, 0}, +/* 37 */ { 3, s_3_37, -1, 1, 0}, +/* 38 */ { 3, s_3_38, -1, 1, 0}, +/* 39 */ { 4, s_3_39, -1, 1, 0}, +/* 40 */ { 5, s_3_40, -1, 1, 0}, +/* 41 */ { 4, s_3_41, -1, 1, 0}, +/* 42 */ { 4, s_3_42, -1, 1, 0}, +/* 43 */ { 3, s_3_43, -1, 3, 0}, +/* 44 */ { 4, s_3_44, -1, 1, 0}, +/* 45 */ { 2, s_3_45, -1, 1, 0}, +/* 46 */ { 2, s_3_46, -1, 1, 0}, +/* 47 */ { 2, s_3_47, -1, 1, 0}, +/* 48 */ { 3, s_3_48, -1, 1, 0}, +/* 49 */ { 3, s_3_49, -1, 3, 0}, +/* 50 */ { 2, s_3_50, -1, 1, 0}, +/* 51 */ { 2, s_3_51, -1, 1, 0}, +/* 52 */ { 3, s_3_52, -1, 1, 0}, +/* 53 */ { 5, s_3_53, -1, 1, 0}, +/* 54 */ { 5, s_3_54, -1, 1, 0}, +/* 55 */ { 4, s_3_55, -1, 1, 0}, +/* 56 */ { 3, s_3_56, -1, 1, 0}, +/* 57 */ { 3, s_3_57, -1, 1, 0}, +/* 58 */ { 4, s_3_58, -1, 1, 0}, +/* 59 */ { 4, s_3_59, -1, 3, 0}, +/* 60 */ { 3, s_3_60, -1, 1, 0}, +/* 61 */ { 3, s_3_61, -1, 1, 0} +}; + +static const symbol s_4_0[2] = { 'e', 'a' }; +static const symbol s_4_1[2] = { 'i', 'a' }; +static const symbol s_4_2[3] = { 'e', 's', 'c' }; +static const symbol s_4_3[3] = { 0xE3, 's', 'c' }; +static const symbol s_4_4[3] = { 'i', 'n', 'd' }; +static const symbol s_4_5[3] = { 0xE2, 'n', 'd' }; +static const symbol s_4_6[3] = { 'a', 'r', 'e' }; +static const symbol s_4_7[3] = { 'e', 'r', 'e' }; +static const symbol s_4_8[3] = { 'i', 'r', 'e' }; +static const symbol s_4_9[3] = { 0xE2, 'r', 'e' }; +static const symbol s_4_10[2] = { 's', 'e' }; +static const symbol s_4_11[3] = { 'a', 's', 'e' }; +static const symbol s_4_12[4] = { 's', 'e', 's', 'e' }; +static const symbol s_4_13[3] = { 'i', 's', 'e' }; +static const symbol s_4_14[3] = { 'u', 's', 'e' }; +static const symbol s_4_15[3] = { 0xE2, 's', 'e' }; +static const symbol s_4_16[4] = { 'e', 0xBA, 't', 'e' }; +static const symbol s_4_17[4] = { 0xE3, 0xBA, 't', 'e' }; +static const symbol s_4_18[3] = { 'e', 'z', 'e' }; +static const symbol s_4_19[2] = { 'a', 'i' }; +static const symbol s_4_20[3] = { 'e', 'a', 'i' }; +static const symbol s_4_21[3] = { 'i', 'a', 'i' }; +static const symbol s_4_22[3] = { 's', 'e', 'i' }; +static const symbol s_4_23[4] = { 'e', 0xBA, 't', 'i' }; +static const symbol s_4_24[4] = { 0xE3, 0xBA, 't', 'i' }; +static const symbol s_4_25[2] = { 'u', 'i' }; +static const symbol s_4_26[3] = { 'e', 'z', 'i' }; +static const symbol s_4_27[3] = { 'a', 0xBA, 'i' }; +static const symbol s_4_28[4] = { 's', 'e', 0xBA, 'i' }; +static const symbol s_4_29[5] = { 'a', 's', 'e', 0xBA, 'i' }; +static const symbol s_4_30[6] = { 's', 'e', 's', 'e', 0xBA, 'i' }; +static const symbol s_4_31[5] = { 'i', 's', 'e', 0xBA, 'i' }; +static const symbol s_4_32[5] = { 'u', 's', 'e', 0xBA, 'i' }; +static const symbol s_4_33[5] = { 0xE2, 's', 'e', 0xBA, 'i' }; +static const symbol s_4_34[3] = { 'i', 0xBA, 'i' }; +static const symbol s_4_35[3] = { 'u', 0xBA, 'i' }; +static const symbol s_4_36[3] = { 0xE2, 0xBA, 'i' }; +static const symbol s_4_37[2] = { 0xE2, 'i' }; +static const symbol s_4_38[3] = { 'a', 0xFE, 'i' }; +static const symbol s_4_39[4] = { 'e', 'a', 0xFE, 'i' }; +static const symbol s_4_40[4] = { 'i', 'a', 0xFE, 'i' }; +static const symbol s_4_41[3] = { 'e', 0xFE, 'i' }; +static const symbol s_4_42[3] = { 'i', 0xFE, 'i' }; +static const symbol s_4_43[3] = { 0xE2, 0xFE, 'i' }; +static const symbol s_4_44[5] = { 'a', 'r', 0xE3, 0xFE, 'i' }; +static const symbol s_4_45[6] = { 's', 'e', 'r', 0xE3, 0xFE, 'i' }; +static const symbol s_4_46[7] = { 'a', 's', 'e', 'r', 0xE3, 0xFE, 'i' }; +static const symbol s_4_47[8] = { 's', 'e', 's', 'e', 'r', 0xE3, 0xFE, 'i' }; +static const symbol s_4_48[7] = { 'i', 's', 'e', 'r', 0xE3, 0xFE, 'i' }; +static const symbol s_4_49[7] = { 'u', 's', 'e', 'r', 0xE3, 0xFE, 'i' }; +static const symbol s_4_50[7] = { 0xE2, 's', 'e', 'r', 0xE3, 0xFE, 'i' }; +static const symbol s_4_51[5] = { 'i', 'r', 0xE3, 0xFE, 'i' }; +static const symbol s_4_52[5] = { 'u', 'r', 0xE3, 0xFE, 'i' }; +static const symbol s_4_53[5] = { 0xE2, 'r', 0xE3, 0xFE, 'i' }; +static const symbol s_4_54[2] = { 'a', 'm' }; +static const symbol s_4_55[3] = { 'e', 'a', 'm' }; +static const symbol s_4_56[3] = { 'i', 'a', 'm' }; +static const symbol s_4_57[2] = { 'e', 'm' }; +static const symbol s_4_58[4] = { 'a', 's', 'e', 'm' }; +static const symbol s_4_59[5] = { 's', 'e', 's', 'e', 'm' }; +static const symbol s_4_60[4] = { 'i', 's', 'e', 'm' }; +static const symbol s_4_61[4] = { 'u', 's', 'e', 'm' }; +static const symbol s_4_62[4] = { 0xE2, 's', 'e', 'm' }; +static const symbol s_4_63[2] = { 'i', 'm' }; +static const symbol s_4_64[2] = { 0xE2, 'm' }; +static const symbol s_4_65[2] = { 0xE3, 'm' }; +static const symbol s_4_66[4] = { 'a', 'r', 0xE3, 'm' }; +static const symbol s_4_67[5] = { 's', 'e', 'r', 0xE3, 'm' }; +static const symbol s_4_68[6] = { 'a', 's', 'e', 'r', 0xE3, 'm' }; +static const symbol s_4_69[7] = { 's', 'e', 's', 'e', 'r', 0xE3, 'm' }; +static const symbol s_4_70[6] = { 'i', 's', 'e', 'r', 0xE3, 'm' }; +static const symbol s_4_71[6] = { 'u', 's', 'e', 'r', 0xE3, 'm' }; +static const symbol s_4_72[6] = { 0xE2, 's', 'e', 'r', 0xE3, 'm' }; +static const symbol s_4_73[4] = { 'i', 'r', 0xE3, 'm' }; +static const symbol s_4_74[4] = { 'u', 'r', 0xE3, 'm' }; +static const symbol s_4_75[4] = { 0xE2, 'r', 0xE3, 'm' }; +static const symbol s_4_76[2] = { 'a', 'u' }; +static const symbol s_4_77[3] = { 'e', 'a', 'u' }; +static const symbol s_4_78[3] = { 'i', 'a', 'u' }; +static const symbol s_4_79[4] = { 'i', 'n', 'd', 'u' }; +static const symbol s_4_80[4] = { 0xE2, 'n', 'd', 'u' }; +static const symbol s_4_81[2] = { 'e', 'z' }; +static const symbol s_4_82[5] = { 'e', 'a', 's', 'c', 0xE3 }; +static const symbol s_4_83[3] = { 'a', 'r', 0xE3 }; +static const symbol s_4_84[4] = { 's', 'e', 'r', 0xE3 }; +static const symbol s_4_85[5] = { 'a', 's', 'e', 'r', 0xE3 }; +static const symbol s_4_86[6] = { 's', 'e', 's', 'e', 'r', 0xE3 }; +static const symbol s_4_87[5] = { 'i', 's', 'e', 'r', 0xE3 }; +static const symbol s_4_88[5] = { 'u', 's', 'e', 'r', 0xE3 }; +static const symbol s_4_89[5] = { 0xE2, 's', 'e', 'r', 0xE3 }; +static const symbol s_4_90[3] = { 'i', 'r', 0xE3 }; +static const symbol s_4_91[3] = { 'u', 'r', 0xE3 }; +static const symbol s_4_92[3] = { 0xE2, 'r', 0xE3 }; +static const symbol s_4_93[4] = { 'e', 'a', 'z', 0xE3 }; + +static const struct among a_4[94] = +{ +/* 0 */ { 2, s_4_0, -1, 1, 0}, +/* 1 */ { 2, s_4_1, -1, 1, 0}, +/* 2 */ { 3, s_4_2, -1, 1, 0}, +/* 3 */ { 3, s_4_3, -1, 1, 0}, +/* 4 */ { 3, s_4_4, -1, 1, 0}, +/* 5 */ { 3, s_4_5, -1, 1, 0}, +/* 6 */ { 3, s_4_6, -1, 1, 0}, +/* 7 */ { 3, s_4_7, -1, 1, 0}, +/* 8 */ { 3, s_4_8, -1, 1, 0}, +/* 9 */ { 3, s_4_9, -1, 1, 0}, +/* 10 */ { 2, s_4_10, -1, 2, 0}, +/* 11 */ { 3, s_4_11, 10, 1, 0}, +/* 12 */ { 4, s_4_12, 10, 2, 0}, +/* 13 */ { 3, s_4_13, 10, 1, 0}, +/* 14 */ { 3, s_4_14, 10, 1, 0}, +/* 15 */ { 3, s_4_15, 10, 1, 0}, +/* 16 */ { 4, s_4_16, -1, 1, 0}, +/* 17 */ { 4, s_4_17, -1, 1, 0}, +/* 18 */ { 3, s_4_18, -1, 1, 0}, +/* 19 */ { 2, s_4_19, -1, 1, 0}, +/* 20 */ { 3, s_4_20, 19, 1, 0}, +/* 21 */ { 3, s_4_21, 19, 1, 0}, +/* 22 */ { 3, s_4_22, -1, 2, 0}, +/* 23 */ { 4, s_4_23, -1, 1, 0}, +/* 24 */ { 4, s_4_24, -1, 1, 0}, +/* 25 */ { 2, s_4_25, -1, 1, 0}, +/* 26 */ { 3, s_4_26, -1, 1, 0}, +/* 27 */ { 3, s_4_27, -1, 1, 0}, +/* 28 */ { 4, s_4_28, -1, 2, 0}, +/* 29 */ { 5, s_4_29, 28, 1, 0}, +/* 30 */ { 6, s_4_30, 28, 2, 0}, +/* 31 */ { 5, s_4_31, 28, 1, 0}, +/* 32 */ { 5, s_4_32, 28, 1, 0}, +/* 33 */ { 5, s_4_33, 28, 1, 0}, +/* 34 */ { 3, s_4_34, -1, 1, 0}, +/* 35 */ { 3, s_4_35, -1, 1, 0}, +/* 36 */ { 3, s_4_36, -1, 1, 0}, +/* 37 */ { 2, s_4_37, -1, 1, 0}, +/* 38 */ { 3, s_4_38, -1, 2, 0}, +/* 39 */ { 4, s_4_39, 38, 1, 0}, +/* 40 */ { 4, s_4_40, 38, 1, 0}, +/* 41 */ { 3, s_4_41, -1, 2, 0}, +/* 42 */ { 3, s_4_42, -1, 2, 0}, +/* 43 */ { 3, s_4_43, -1, 2, 0}, +/* 44 */ { 5, s_4_44, -1, 1, 0}, +/* 45 */ { 6, s_4_45, -1, 2, 0}, +/* 46 */ { 7, s_4_46, 45, 1, 0}, +/* 47 */ { 8, s_4_47, 45, 2, 0}, +/* 48 */ { 7, s_4_48, 45, 1, 0}, +/* 49 */ { 7, s_4_49, 45, 1, 0}, +/* 50 */ { 7, s_4_50, 45, 1, 0}, +/* 51 */ { 5, s_4_51, -1, 1, 0}, +/* 52 */ { 5, s_4_52, -1, 1, 0}, +/* 53 */ { 5, s_4_53, -1, 1, 0}, +/* 54 */ { 2, s_4_54, -1, 1, 0}, +/* 55 */ { 3, s_4_55, 54, 1, 0}, +/* 56 */ { 3, s_4_56, 54, 1, 0}, +/* 57 */ { 2, s_4_57, -1, 2, 0}, +/* 58 */ { 4, s_4_58, 57, 1, 0}, +/* 59 */ { 5, s_4_59, 57, 2, 0}, +/* 60 */ { 4, s_4_60, 57, 1, 0}, +/* 61 */ { 4, s_4_61, 57, 1, 0}, +/* 62 */ { 4, s_4_62, 57, 1, 0}, +/* 63 */ { 2, s_4_63, -1, 2, 0}, +/* 64 */ { 2, s_4_64, -1, 2, 0}, +/* 65 */ { 2, s_4_65, -1, 2, 0}, +/* 66 */ { 4, s_4_66, 65, 1, 0}, +/* 67 */ { 5, s_4_67, 65, 2, 0}, +/* 68 */ { 6, s_4_68, 67, 1, 0}, +/* 69 */ { 7, s_4_69, 67, 2, 0}, +/* 70 */ { 6, s_4_70, 67, 1, 0}, +/* 71 */ { 6, s_4_71, 67, 1, 0}, +/* 72 */ { 6, s_4_72, 67, 1, 0}, +/* 73 */ { 4, s_4_73, 65, 1, 0}, +/* 74 */ { 4, s_4_74, 65, 1, 0}, +/* 75 */ { 4, s_4_75, 65, 1, 0}, +/* 76 */ { 2, s_4_76, -1, 1, 0}, +/* 77 */ { 3, s_4_77, 76, 1, 0}, +/* 78 */ { 3, s_4_78, 76, 1, 0}, +/* 79 */ { 4, s_4_79, -1, 1, 0}, +/* 80 */ { 4, s_4_80, -1, 1, 0}, +/* 81 */ { 2, s_4_81, -1, 1, 0}, +/* 82 */ { 5, s_4_82, -1, 1, 0}, +/* 83 */ { 3, s_4_83, -1, 1, 0}, +/* 84 */ { 4, s_4_84, -1, 2, 0}, +/* 85 */ { 5, s_4_85, 84, 1, 0}, +/* 86 */ { 6, s_4_86, 84, 2, 0}, +/* 87 */ { 5, s_4_87, 84, 1, 0}, +/* 88 */ { 5, s_4_88, 84, 1, 0}, +/* 89 */ { 5, s_4_89, 84, 1, 0}, +/* 90 */ { 3, s_4_90, -1, 1, 0}, +/* 91 */ { 3, s_4_91, -1, 1, 0}, +/* 92 */ { 3, s_4_92, -1, 1, 0}, +/* 93 */ { 4, s_4_93, -1, 1, 0} +}; + +static const symbol s_5_0[1] = { 'a' }; +static const symbol s_5_1[1] = { 'e' }; +static const symbol s_5_2[2] = { 'i', 'e' }; +static const symbol s_5_3[1] = { 'i' }; +static const symbol s_5_4[1] = { 0xE3 }; + +static const struct among a_5[5] = +{ +/* 0 */ { 1, s_5_0, -1, 1, 0}, +/* 1 */ { 1, s_5_1, -1, 1, 0}, +/* 2 */ { 2, s_5_2, 1, 1, 0}, +/* 3 */ { 1, s_5_3, -1, 1, 0}, +/* 4 */ { 1, s_5_4, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32 }; + +static const symbol s_0[] = { 'U' }; +static const symbol s_1[] = { 'I' }; +static const symbol s_2[] = { 'i' }; +static const symbol s_3[] = { 'u' }; +static const symbol s_4[] = { 'a' }; +static const symbol s_5[] = { 'e' }; +static const symbol s_6[] = { 'i' }; +static const symbol s_7[] = { 'a', 'b' }; +static const symbol s_8[] = { 'i' }; +static const symbol s_9[] = { 'a', 't' }; +static const symbol s_10[] = { 'a', 0xFE, 'i' }; +static const symbol s_11[] = { 'a', 'b', 'i', 'l' }; +static const symbol s_12[] = { 'i', 'b', 'i', 'l' }; +static const symbol s_13[] = { 'i', 'v' }; +static const symbol s_14[] = { 'i', 'c' }; +static const symbol s_15[] = { 'a', 't' }; +static const symbol s_16[] = { 'i', 't' }; +static const symbol s_17[] = { 't' }; +static const symbol s_18[] = { 'i', 's', 't' }; + +static int r_prelude(struct SN_env * z) { /* 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; /* grouping v, line 33 */ + z->bra = z->c; /* [, line 33 */ + { int c3 = z->c; /* or, line 33 */ + 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; /* 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 (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; /* grouping v, line 34 */ + { int ret = slice_from_s(z, 1, s_1); /* <-, line 34 */ + if (ret < 0) return ret; + } + } + lab2: + z->c = c2; + break; + lab1: + z->c = c2; + if (z->c >= z->l) goto lab0; + z->c++; /* goto, line 32 */ + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +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; /* grouping v, line 45 */ + { int c3 = z->c; /* or, line 45 */ + 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; + z->c += ret; + } + goto lab3; + lab4: + z->c = c3; + 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; + z->c += ret; + } + } + lab3: + goto lab1; + lab2: + z->c = c2; + 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; /* non v, line 47 */ + { /* gopast */ /* grouping v, line 47 */ + int ret = out_grouping(z, g_v, 97, 238, 1); + if (ret < 0) goto lab6; + z->c += ret; + } + goto lab5; + lab6: + z->c = c4; + if (in_grouping(z, g_v, 97, 238, 0)) goto lab0; /* grouping v, line 47 */ + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 47 */ + } + lab5: + ; + } + lab1: + z->I[0] = z->c; /* setmark pV, line 48 */ + lab0: + z->c = c1; + } + { int c5 = z->c; /* do, line 50 */ + { /* gopast */ /* grouping v, line 51 */ + int ret = out_grouping(z, g_v, 97, 238, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 51 */ + int ret = in_grouping(z, g_v, 97, 238, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[1] = z->c; /* setmark p1, line 51 */ + { /* gopast */ /* grouping v, line 52 */ + int ret = out_grouping(z, g_v, 97, 238, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 52 */ + int ret = in_grouping(z, g_v, 97, 238, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[2] = z->c; /* setmark p2, line 52 */ + lab7: + z->c = c5; + } + return 1; +} + +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 /* 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) { /* among, line 58 */ + case 1: + { 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_3); /* <-, line 60 */ + if (ret < 0) return ret; + } + break; + case 3: + if (z->c >= z->l) goto lab0; + z->c++; /* next, line 61 */ + break; + } + continue; + lab0: + z->c = c1; + 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 68 */ + return 1; +} + +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) { /* 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) { /* 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; /* 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); /* call R1, line 73 */ + if (ret <= 0) return ret; + } + 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_4); /* <-, line 77 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_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_7))) goto lab0; /* literal, line 83 */ + return 0; + lab0: + z->c = z->l - m1; + } + { 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_9); /* <-, line 85 */ + if (ret < 0) return ret; + } + break; + case 7: + { int ret = slice_from_s(z, 3, s_10); /* <-, line 87 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_combo_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + { 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); /* call R1, line 92 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 93 */ + case 1: + { 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_12); /* <-, line 104 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_14); /* <-, line 113 */ + if (ret < 0) return ret; + } + break; + case 5: + { 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_16); /* <-, line 122 */ + if (ret < 0) return ret; + } + break; + } + z->B[0] = 1; /* set standard_suffix_removed, line 125 */ + z->c = z->l - m_test1; + } + return 1; +} + +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); /* call combo_suffix, line 131 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + continue; + lab0: + z->c = z->l - m1; + break; + } + z->ket = z->c; /* [, line 132 */ + 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); /* call R2, line 132 */ + if (ret <= 0) return ret; + } + 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 (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_17); /* <-, line 152 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 3, s_18); /* <-, line 156 */ + if (ret < 0) return ret; + } + break; + } + z->B[0] = 1; /* set standard_suffix_removed, line 160 */ + return 1; +} + +static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 164 */ + if (z->c < z->I[0]) return 0; + 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 = mlimit1; return 0; } + z->bra = z->c; /* ], line 165 */ + 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; /* non v, line 200 */ + goto lab0; + lab1: + z->c = z->l - m2; + 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 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 214 */ + if (ret < 0) return ret; + } + break; + } + z->lb = mlimit1; + } + return 1; +} + +static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 219 */ + if (!(find_among_b(z, a_5, 5))) return 0; /* substring, line 219 */ + z->bra = z->c; /* ], 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; + } + return 1; +} + +extern int romanian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, 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; + } + /* 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 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 - m2; + } + { 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 - m3; + } + { 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 - 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 - m4; + } + { 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 - m6; + } + z->c = z->lb; + { 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 = c7; + } + return 1; +} + +extern struct SN_env * romanian_ISO_8859_2_create_env(void) { return SN_create_env(0, 3, 1); } + +extern void romanian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c b/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c new file mode 100644 index 0000000..fea26a6 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c @@ -0,0 +1,689 @@ +/* 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 russian_KOI8_R_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_tidy_up(struct SN_env * z); +static int r_derivational(struct SN_env * z); +static int r_noun(struct SN_env * z); +static int r_verb(struct SN_env * z); +static int r_reflexive(struct SN_env * z); +static int r_adjectival(struct SN_env * z); +static int r_adjective(struct SN_env * z); +static int r_perfective_gerund(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * russian_KOI8_R_create_env(void); +extern void russian_KOI8_R_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[3] = { 0xD7, 0xDB, 0xC9 }; +static const symbol s_0_1[4] = { 0xC9, 0xD7, 0xDB, 0xC9 }; +static const symbol s_0_2[4] = { 0xD9, 0xD7, 0xDB, 0xC9 }; +static const symbol s_0_3[1] = { 0xD7 }; +static const symbol s_0_4[2] = { 0xC9, 0xD7 }; +static const symbol s_0_5[2] = { 0xD9, 0xD7 }; +static const symbol s_0_6[5] = { 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 }; +static const symbol s_0_7[6] = { 0xC9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 }; +static const symbol s_0_8[6] = { 0xD9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 }; + +static const struct among a_0[9] = +{ +/* 0 */ { 3, s_0_0, -1, 1, 0}, +/* 1 */ { 4, s_0_1, 0, 2, 0}, +/* 2 */ { 4, s_0_2, 0, 2, 0}, +/* 3 */ { 1, s_0_3, -1, 1, 0}, +/* 4 */ { 2, s_0_4, 3, 2, 0}, +/* 5 */ { 2, s_0_5, 3, 2, 0}, +/* 6 */ { 5, s_0_6, -1, 1, 0}, +/* 7 */ { 6, s_0_7, 6, 2, 0}, +/* 8 */ { 6, s_0_8, 6, 2, 0} +}; + +static const symbol s_1_0[2] = { 0xC0, 0xC0 }; +static const symbol s_1_1[2] = { 0xC5, 0xC0 }; +static const symbol s_1_2[2] = { 0xCF, 0xC0 }; +static const symbol s_1_3[2] = { 0xD5, 0xC0 }; +static const symbol s_1_4[2] = { 0xC5, 0xC5 }; +static const symbol s_1_5[2] = { 0xC9, 0xC5 }; +static const symbol s_1_6[2] = { 0xCF, 0xC5 }; +static const symbol s_1_7[2] = { 0xD9, 0xC5 }; +static const symbol s_1_8[2] = { 0xC9, 0xC8 }; +static const symbol s_1_9[2] = { 0xD9, 0xC8 }; +static const symbol s_1_10[3] = { 0xC9, 0xCD, 0xC9 }; +static const symbol s_1_11[3] = { 0xD9, 0xCD, 0xC9 }; +static const symbol s_1_12[2] = { 0xC5, 0xCA }; +static const symbol s_1_13[2] = { 0xC9, 0xCA }; +static const symbol s_1_14[2] = { 0xCF, 0xCA }; +static const symbol s_1_15[2] = { 0xD9, 0xCA }; +static const symbol s_1_16[2] = { 0xC5, 0xCD }; +static const symbol s_1_17[2] = { 0xC9, 0xCD }; +static const symbol s_1_18[2] = { 0xCF, 0xCD }; +static const symbol s_1_19[2] = { 0xD9, 0xCD }; +static const symbol s_1_20[3] = { 0xC5, 0xC7, 0xCF }; +static const symbol s_1_21[3] = { 0xCF, 0xC7, 0xCF }; +static const symbol s_1_22[2] = { 0xC1, 0xD1 }; +static const symbol s_1_23[2] = { 0xD1, 0xD1 }; +static const symbol s_1_24[3] = { 0xC5, 0xCD, 0xD5 }; +static const symbol s_1_25[3] = { 0xCF, 0xCD, 0xD5 }; + +static const struct among a_1[26] = +{ +/* 0 */ { 2, s_1_0, -1, 1, 0}, +/* 1 */ { 2, s_1_1, -1, 1, 0}, +/* 2 */ { 2, s_1_2, -1, 1, 0}, +/* 3 */ { 2, s_1_3, -1, 1, 0}, +/* 4 */ { 2, s_1_4, -1, 1, 0}, +/* 5 */ { 2, s_1_5, -1, 1, 0}, +/* 6 */ { 2, s_1_6, -1, 1, 0}, +/* 7 */ { 2, s_1_7, -1, 1, 0}, +/* 8 */ { 2, s_1_8, -1, 1, 0}, +/* 9 */ { 2, s_1_9, -1, 1, 0}, +/* 10 */ { 3, s_1_10, -1, 1, 0}, +/* 11 */ { 3, s_1_11, -1, 1, 0}, +/* 12 */ { 2, s_1_12, -1, 1, 0}, +/* 13 */ { 2, s_1_13, -1, 1, 0}, +/* 14 */ { 2, s_1_14, -1, 1, 0}, +/* 15 */ { 2, s_1_15, -1, 1, 0}, +/* 16 */ { 2, s_1_16, -1, 1, 0}, +/* 17 */ { 2, s_1_17, -1, 1, 0}, +/* 18 */ { 2, s_1_18, -1, 1, 0}, +/* 19 */ { 2, s_1_19, -1, 1, 0}, +/* 20 */ { 3, s_1_20, -1, 1, 0}, +/* 21 */ { 3, s_1_21, -1, 1, 0}, +/* 22 */ { 2, s_1_22, -1, 1, 0}, +/* 23 */ { 2, s_1_23, -1, 1, 0}, +/* 24 */ { 3, s_1_24, -1, 1, 0}, +/* 25 */ { 3, s_1_25, -1, 1, 0} +}; + +static const symbol s_2_0[2] = { 0xC5, 0xCD }; +static const symbol s_2_1[2] = { 0xCE, 0xCE }; +static const symbol s_2_2[2] = { 0xD7, 0xDB }; +static const symbol s_2_3[3] = { 0xC9, 0xD7, 0xDB }; +static const symbol s_2_4[3] = { 0xD9, 0xD7, 0xDB }; +static const symbol s_2_5[1] = { 0xDD }; +static const symbol s_2_6[2] = { 0xC0, 0xDD }; +static const symbol s_2_7[3] = { 0xD5, 0xC0, 0xDD }; + +static const struct among a_2[8] = +{ +/* 0 */ { 2, s_2_0, -1, 1, 0}, +/* 1 */ { 2, s_2_1, -1, 1, 0}, +/* 2 */ { 2, s_2_2, -1, 1, 0}, +/* 3 */ { 3, s_2_3, 2, 2, 0}, +/* 4 */ { 3, s_2_4, 2, 2, 0}, +/* 5 */ { 1, s_2_5, -1, 1, 0}, +/* 6 */ { 2, s_2_6, 5, 1, 0}, +/* 7 */ { 3, s_2_7, 6, 2, 0} +}; + +static const symbol s_3_0[2] = { 0xD3, 0xD1 }; +static const symbol s_3_1[2] = { 0xD3, 0xD8 }; + +static const struct among a_3[2] = +{ +/* 0 */ { 2, s_3_0, -1, 1, 0}, +/* 1 */ { 2, s_3_1, -1, 1, 0} +}; + +static const symbol s_4_0[1] = { 0xC0 }; +static const symbol s_4_1[2] = { 0xD5, 0xC0 }; +static const symbol s_4_2[2] = { 0xCC, 0xC1 }; +static const symbol s_4_3[3] = { 0xC9, 0xCC, 0xC1 }; +static const symbol s_4_4[3] = { 0xD9, 0xCC, 0xC1 }; +static const symbol s_4_5[2] = { 0xCE, 0xC1 }; +static const symbol s_4_6[3] = { 0xC5, 0xCE, 0xC1 }; +static const symbol s_4_7[3] = { 0xC5, 0xD4, 0xC5 }; +static const symbol s_4_8[3] = { 0xC9, 0xD4, 0xC5 }; +static const symbol s_4_9[3] = { 0xCA, 0xD4, 0xC5 }; +static const symbol s_4_10[4] = { 0xC5, 0xCA, 0xD4, 0xC5 }; +static const symbol s_4_11[4] = { 0xD5, 0xCA, 0xD4, 0xC5 }; +static const symbol s_4_12[2] = { 0xCC, 0xC9 }; +static const symbol s_4_13[3] = { 0xC9, 0xCC, 0xC9 }; +static const symbol s_4_14[3] = { 0xD9, 0xCC, 0xC9 }; +static const symbol s_4_15[1] = { 0xCA }; +static const symbol s_4_16[2] = { 0xC5, 0xCA }; +static const symbol s_4_17[2] = { 0xD5, 0xCA }; +static const symbol s_4_18[1] = { 0xCC }; +static const symbol s_4_19[2] = { 0xC9, 0xCC }; +static const symbol s_4_20[2] = { 0xD9, 0xCC }; +static const symbol s_4_21[2] = { 0xC5, 0xCD }; +static const symbol s_4_22[2] = { 0xC9, 0xCD }; +static const symbol s_4_23[2] = { 0xD9, 0xCD }; +static const symbol s_4_24[1] = { 0xCE }; +static const symbol s_4_25[2] = { 0xC5, 0xCE }; +static const symbol s_4_26[2] = { 0xCC, 0xCF }; +static const symbol s_4_27[3] = { 0xC9, 0xCC, 0xCF }; +static const symbol s_4_28[3] = { 0xD9, 0xCC, 0xCF }; +static const symbol s_4_29[2] = { 0xCE, 0xCF }; +static const symbol s_4_30[3] = { 0xC5, 0xCE, 0xCF }; +static const symbol s_4_31[3] = { 0xCE, 0xCE, 0xCF }; +static const symbol s_4_32[2] = { 0xC0, 0xD4 }; +static const symbol s_4_33[3] = { 0xD5, 0xC0, 0xD4 }; +static const symbol s_4_34[2] = { 0xC5, 0xD4 }; +static const symbol s_4_35[3] = { 0xD5, 0xC5, 0xD4 }; +static const symbol s_4_36[2] = { 0xC9, 0xD4 }; +static const symbol s_4_37[2] = { 0xD1, 0xD4 }; +static const symbol s_4_38[2] = { 0xD9, 0xD4 }; +static const symbol s_4_39[2] = { 0xD4, 0xD8 }; +static const symbol s_4_40[3] = { 0xC9, 0xD4, 0xD8 }; +static const symbol s_4_41[3] = { 0xD9, 0xD4, 0xD8 }; +static const symbol s_4_42[3] = { 0xC5, 0xDB, 0xD8 }; +static const symbol s_4_43[3] = { 0xC9, 0xDB, 0xD8 }; +static const symbol s_4_44[2] = { 0xCE, 0xD9 }; +static const symbol s_4_45[3] = { 0xC5, 0xCE, 0xD9 }; + +static const struct among a_4[46] = +{ +/* 0 */ { 1, s_4_0, -1, 2, 0}, +/* 1 */ { 2, s_4_1, 0, 2, 0}, +/* 2 */ { 2, s_4_2, -1, 1, 0}, +/* 3 */ { 3, s_4_3, 2, 2, 0}, +/* 4 */ { 3, s_4_4, 2, 2, 0}, +/* 5 */ { 2, s_4_5, -1, 1, 0}, +/* 6 */ { 3, s_4_6, 5, 2, 0}, +/* 7 */ { 3, s_4_7, -1, 1, 0}, +/* 8 */ { 3, s_4_8, -1, 2, 0}, +/* 9 */ { 3, s_4_9, -1, 1, 0}, +/* 10 */ { 4, s_4_10, 9, 2, 0}, +/* 11 */ { 4, s_4_11, 9, 2, 0}, +/* 12 */ { 2, s_4_12, -1, 1, 0}, +/* 13 */ { 3, s_4_13, 12, 2, 0}, +/* 14 */ { 3, s_4_14, 12, 2, 0}, +/* 15 */ { 1, s_4_15, -1, 1, 0}, +/* 16 */ { 2, s_4_16, 15, 2, 0}, +/* 17 */ { 2, s_4_17, 15, 2, 0}, +/* 18 */ { 1, s_4_18, -1, 1, 0}, +/* 19 */ { 2, s_4_19, 18, 2, 0}, +/* 20 */ { 2, s_4_20, 18, 2, 0}, +/* 21 */ { 2, s_4_21, -1, 1, 0}, +/* 22 */ { 2, s_4_22, -1, 2, 0}, +/* 23 */ { 2, s_4_23, -1, 2, 0}, +/* 24 */ { 1, s_4_24, -1, 1, 0}, +/* 25 */ { 2, s_4_25, 24, 2, 0}, +/* 26 */ { 2, s_4_26, -1, 1, 0}, +/* 27 */ { 3, s_4_27, 26, 2, 0}, +/* 28 */ { 3, s_4_28, 26, 2, 0}, +/* 29 */ { 2, s_4_29, -1, 1, 0}, +/* 30 */ { 3, s_4_30, 29, 2, 0}, +/* 31 */ { 3, s_4_31, 29, 1, 0}, +/* 32 */ { 2, s_4_32, -1, 1, 0}, +/* 33 */ { 3, s_4_33, 32, 2, 0}, +/* 34 */ { 2, s_4_34, -1, 1, 0}, +/* 35 */ { 3, s_4_35, 34, 2, 0}, +/* 36 */ { 2, s_4_36, -1, 2, 0}, +/* 37 */ { 2, s_4_37, -1, 2, 0}, +/* 38 */ { 2, s_4_38, -1, 2, 0}, +/* 39 */ { 2, s_4_39, -1, 1, 0}, +/* 40 */ { 3, s_4_40, 39, 2, 0}, +/* 41 */ { 3, s_4_41, 39, 2, 0}, +/* 42 */ { 3, s_4_42, -1, 1, 0}, +/* 43 */ { 3, s_4_43, -1, 2, 0}, +/* 44 */ { 2, s_4_44, -1, 1, 0}, +/* 45 */ { 3, s_4_45, 44, 2, 0} +}; + +static const symbol s_5_0[1] = { 0xC0 }; +static const symbol s_5_1[2] = { 0xC9, 0xC0 }; +static const symbol s_5_2[2] = { 0xD8, 0xC0 }; +static const symbol s_5_3[1] = { 0xC1 }; +static const symbol s_5_4[1] = { 0xC5 }; +static const symbol s_5_5[2] = { 0xC9, 0xC5 }; +static const symbol s_5_6[2] = { 0xD8, 0xC5 }; +static const symbol s_5_7[2] = { 0xC1, 0xC8 }; +static const symbol s_5_8[2] = { 0xD1, 0xC8 }; +static const symbol s_5_9[3] = { 0xC9, 0xD1, 0xC8 }; +static const symbol s_5_10[1] = { 0xC9 }; +static const symbol s_5_11[2] = { 0xC5, 0xC9 }; +static const symbol s_5_12[2] = { 0xC9, 0xC9 }; +static const symbol s_5_13[3] = { 0xC1, 0xCD, 0xC9 }; +static const symbol s_5_14[3] = { 0xD1, 0xCD, 0xC9 }; +static const symbol s_5_15[4] = { 0xC9, 0xD1, 0xCD, 0xC9 }; +static const symbol s_5_16[1] = { 0xCA }; +static const symbol s_5_17[2] = { 0xC5, 0xCA }; +static const symbol s_5_18[3] = { 0xC9, 0xC5, 0xCA }; +static const symbol s_5_19[2] = { 0xC9, 0xCA }; +static const symbol s_5_20[2] = { 0xCF, 0xCA }; +static const symbol s_5_21[2] = { 0xC1, 0xCD }; +static const symbol s_5_22[2] = { 0xC5, 0xCD }; +static const symbol s_5_23[3] = { 0xC9, 0xC5, 0xCD }; +static const symbol s_5_24[2] = { 0xCF, 0xCD }; +static const symbol s_5_25[2] = { 0xD1, 0xCD }; +static const symbol s_5_26[3] = { 0xC9, 0xD1, 0xCD }; +static const symbol s_5_27[1] = { 0xCF }; +static const symbol s_5_28[1] = { 0xD1 }; +static const symbol s_5_29[2] = { 0xC9, 0xD1 }; +static const symbol s_5_30[2] = { 0xD8, 0xD1 }; +static const symbol s_5_31[1] = { 0xD5 }; +static const symbol s_5_32[2] = { 0xC5, 0xD7 }; +static const symbol s_5_33[2] = { 0xCF, 0xD7 }; +static const symbol s_5_34[1] = { 0xD8 }; +static const symbol s_5_35[1] = { 0xD9 }; + +static const struct among a_5[36] = +{ +/* 0 */ { 1, s_5_0, -1, 1, 0}, +/* 1 */ { 2, s_5_1, 0, 1, 0}, +/* 2 */ { 2, s_5_2, 0, 1, 0}, +/* 3 */ { 1, s_5_3, -1, 1, 0}, +/* 4 */ { 1, s_5_4, -1, 1, 0}, +/* 5 */ { 2, s_5_5, 4, 1, 0}, +/* 6 */ { 2, s_5_6, 4, 1, 0}, +/* 7 */ { 2, s_5_7, -1, 1, 0}, +/* 8 */ { 2, s_5_8, -1, 1, 0}, +/* 9 */ { 3, s_5_9, 8, 1, 0}, +/* 10 */ { 1, s_5_10, -1, 1, 0}, +/* 11 */ { 2, s_5_11, 10, 1, 0}, +/* 12 */ { 2, s_5_12, 10, 1, 0}, +/* 13 */ { 3, s_5_13, 10, 1, 0}, +/* 14 */ { 3, s_5_14, 10, 1, 0}, +/* 15 */ { 4, s_5_15, 14, 1, 0}, +/* 16 */ { 1, s_5_16, -1, 1, 0}, +/* 17 */ { 2, s_5_17, 16, 1, 0}, +/* 18 */ { 3, s_5_18, 17, 1, 0}, +/* 19 */ { 2, s_5_19, 16, 1, 0}, +/* 20 */ { 2, s_5_20, 16, 1, 0}, +/* 21 */ { 2, s_5_21, -1, 1, 0}, +/* 22 */ { 2, s_5_22, -1, 1, 0}, +/* 23 */ { 3, s_5_23, 22, 1, 0}, +/* 24 */ { 2, s_5_24, -1, 1, 0}, +/* 25 */ { 2, s_5_25, -1, 1, 0}, +/* 26 */ { 3, s_5_26, 25, 1, 0}, +/* 27 */ { 1, s_5_27, -1, 1, 0}, +/* 28 */ { 1, s_5_28, -1, 1, 0}, +/* 29 */ { 2, s_5_29, 28, 1, 0}, +/* 30 */ { 2, s_5_30, 28, 1, 0}, +/* 31 */ { 1, s_5_31, -1, 1, 0}, +/* 32 */ { 2, s_5_32, -1, 1, 0}, +/* 33 */ { 2, s_5_33, -1, 1, 0}, +/* 34 */ { 1, s_5_34, -1, 1, 0}, +/* 35 */ { 1, s_5_35, -1, 1, 0} +}; + +static const symbol s_6_0[3] = { 0xCF, 0xD3, 0xD4 }; +static const symbol s_6_1[4] = { 0xCF, 0xD3, 0xD4, 0xD8 }; + +static const struct among a_6[2] = +{ +/* 0 */ { 3, s_6_0, -1, 1, 0}, +/* 1 */ { 4, s_6_1, -1, 1, 0} +}; + +static const symbol s_7_0[4] = { 0xC5, 0xCA, 0xDB, 0xC5 }; +static const symbol s_7_1[1] = { 0xCE }; +static const symbol s_7_2[1] = { 0xD8 }; +static const symbol s_7_3[3] = { 0xC5, 0xCA, 0xDB }; + +static const struct among a_7[4] = +{ +/* 0 */ { 4, s_7_0, -1, 1, 0}, +/* 1 */ { 1, s_7_1, -1, 2, 0}, +/* 2 */ { 1, s_7_2, -1, 3, 0}, +/* 3 */ { 3, s_7_3, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 35, 130, 34, 18 }; + +static const symbol s_0[] = { 0xC5 }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $pV = <integer expression>, line 61 */ + z->I[1] = z->l; /* $p2 = <integer expression>, line 62 */ + { int c1 = z->c; /* do, line 63 */ + { /* gopast */ /* grouping v, line 64 */ + int ret = out_grouping(z, g_v, 192, 220, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + z->I[0] = z->c; /* setmark pV, line 64 */ + { /* gopast */ /* non v, line 64 */ + int ret = in_grouping(z, g_v, 192, 220, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + { /* gopast */ /* grouping v, line 65 */ + int ret = out_grouping(z, g_v, 192, 220, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + { /* gopast */ /* non v, line 65 */ + int ret = in_grouping(z, g_v, 192, 220, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + z->I[1] = z->c; /* setmark p2, line 65 */ + lab0: + z->c = c1; + } + return 1; +} + +static int r_R2(struct SN_env * z) { /* backwardmode */ + if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 71 */ + return 1; +} + +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; /* 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) { /* among, line 74 */ + case 1: + { int m1 = z->l - z->c; (void)m1; /* or, line 78 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 78 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 78 */ + z->c--; + } + lab0: + { int ret = slice_del(z); /* delete, line 78 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 85 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_adjective(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 90 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 90 */ + if (!(find_among_b(z, a_1, 26))) return 0; + z->bra = z->c; /* ], line 90 */ + { int ret = slice_del(z); /* delete, line 99 */ + if (ret < 0) return ret; + } + 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 */ + 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) { /* among, line 112 */ + case 1: + { int m2 = z->l - z->c; (void)m2; /* or, line 117 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2; /* literal, line 117 */ + z->c--; + goto lab1; + lab2: + z->c = z->l - m2; + if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; } /* literal, line 117 */ + z->c--; + } + lab1: + { int ret = slice_del(z); /* delete, line 117 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 124 */ + if (ret < 0) return ret; + } + break; + } + lab0: + ; + } + return 1; +} + +static int r_reflexive(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 131 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0; /* substring, line 131 */ + 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) { /* 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; /* 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) { /* among, line 139 */ + case 1: + { int m1 = z->l - z->c; (void)m1; /* or, line 145 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 145 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 145 */ + z->c--; + } + lab0: + { int ret = slice_del(z); /* delete, line 145 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 153 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_noun(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 162 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 162 */ + if (!(find_among_b(z, a_5, 36))) return 0; + z->bra = z->c; /* ], line 162 */ + { int ret = slice_del(z); /* delete, line 169 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_derivational(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 178 */ + if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0; /* substring, line 178 */ + 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) { /* 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; /* 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) { /* 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 (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */ + z->c--; + z->bra = z->c; /* ], line 191 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */ + z->c--; + { int ret = slice_del(z); /* delete, line 191 */ + if (ret < 0) return ret; + } + break; + case 2: + 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; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 196 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; + } + z->c = c1; + } + /* 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 mlimit4; /* setlimit, line 208 */ + if (z->c < z->I[0]) return 0; + mlimit4 = z->lb; z->lb = z->I[0]; + { int m5 = z->l - z->c; (void)m5; /* do, line 209 */ + { int m6 = z->l - z->c; (void)m6; /* or, line 210 */ + { int ret = r_perfective_gerund(z); /* call perfective_gerund, line 210 */ + if (ret == 0) goto lab6; + if (ret < 0) return ret; + } + 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; + } + lab7: + ; + } + { 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 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 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; + } + } + lab8: + ; + } + lab5: + lab4: + z->c = z->l - m5; + } + { int m9 = z->l - z->c; (void)m9; /* try, line 215 */ + z->ket = z->c; /* [, line 215 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto 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; + } + lab11: + ; + } + { 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; + } + lab12: + z->c = z->l - m10; + } + { int m11 = z->l - z->c; (void)m11; /* do, line 219 */ + { int ret = r_tidy_up(z); /* call tidy_up, line 219 */ + if (ret == 0) goto lab13; + if (ret < 0) return ret; + } + lab13: + z->c = z->l - m11; + } + z->lb = mlimit4; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2, 0); } + +extern void russian_KOI8_R_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c b/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c new file mode 100644 index 0000000..30bf1d9 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c @@ -0,0 +1,1683 @@ +/* This file was generated automatically by the Snowball to ISO C compiler */ +/* http://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int arabic_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_Checks1(struct SN_env * z); +static int r_Normalize_pre(struct SN_env * z); +static int r_Normalize_post(struct SN_env * z); +static int r_Suffix_Verb_Step2c(struct SN_env * z); +static int r_Suffix_Verb_Step2b(struct SN_env * z); +static int r_Suffix_Verb_Step2a(struct SN_env * z); +static int r_Suffix_Verb_Step1(struct SN_env * z); +static int r_Suffix_Noun_Step3(struct SN_env * z); +static int r_Suffix_Noun_Step2c2(struct SN_env * z); +static int r_Suffix_Noun_Step2c1(struct SN_env * z); +static int r_Suffix_Noun_Step2b(struct SN_env * z); +static int r_Suffix_Noun_Step2a(struct SN_env * z); +static int r_Suffix_Noun_Step1b(struct SN_env * z); +static int r_Suffix_Noun_Step1a(struct SN_env * z); +static int r_Suffix_All_alef_maqsura(struct SN_env * z); +static int r_Prefix_Step4_Verb(struct SN_env * z); +static int r_Prefix_Step3_Verb(struct SN_env * z); +static int r_Prefix_Step3b_Noun(struct SN_env * z); +static int r_Prefix_Step3a_Noun(struct SN_env * z); +static int r_Prefix_Step2(struct SN_env * z); +static int r_Prefix_Step1(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * arabic_UTF_8_create_env(void); +extern void arabic_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[2] = { 0xD9, 0x80 }; +static const symbol s_0_1[2] = { 0xD9, 0x8B }; +static const symbol s_0_2[2] = { 0xD9, 0x8C }; +static const symbol s_0_3[2] = { 0xD9, 0x8D }; +static const symbol s_0_4[2] = { 0xD9, 0x8E }; +static const symbol s_0_5[2] = { 0xD9, 0x8F }; +static const symbol s_0_6[2] = { 0xD9, 0x90 }; +static const symbol s_0_7[2] = { 0xD9, 0x91 }; +static const symbol s_0_8[2] = { 0xD9, 0x92 }; +static const symbol s_0_9[2] = { 0xD9, 0xA0 }; +static const symbol s_0_10[2] = { 0xD9, 0xA1 }; +static const symbol s_0_11[2] = { 0xD9, 0xA2 }; +static const symbol s_0_12[2] = { 0xD9, 0xA3 }; +static const symbol s_0_13[2] = { 0xD9, 0xA4 }; +static const symbol s_0_14[2] = { 0xD9, 0xA5 }; +static const symbol s_0_15[2] = { 0xD9, 0xA6 }; +static const symbol s_0_16[2] = { 0xD9, 0xA7 }; +static const symbol s_0_17[2] = { 0xD9, 0xA8 }; +static const symbol s_0_18[2] = { 0xD9, 0xA9 }; +static const symbol s_0_19[3] = { 0xEF, 0xBA, 0x80 }; +static const symbol s_0_20[3] = { 0xEF, 0xBA, 0x81 }; +static const symbol s_0_21[3] = { 0xEF, 0xBA, 0x82 }; +static const symbol s_0_22[3] = { 0xEF, 0xBA, 0x83 }; +static const symbol s_0_23[3] = { 0xEF, 0xBA, 0x84 }; +static const symbol s_0_24[3] = { 0xEF, 0xBA, 0x85 }; +static const symbol s_0_25[3] = { 0xEF, 0xBA, 0x86 }; +static const symbol s_0_26[3] = { 0xEF, 0xBA, 0x87 }; +static const symbol s_0_27[3] = { 0xEF, 0xBA, 0x88 }; +static const symbol s_0_28[3] = { 0xEF, 0xBA, 0x89 }; +static const symbol s_0_29[3] = { 0xEF, 0xBA, 0x8A }; +static const symbol s_0_30[3] = { 0xEF, 0xBA, 0x8B }; +static const symbol s_0_31[3] = { 0xEF, 0xBA, 0x8C }; +static const symbol s_0_32[3] = { 0xEF, 0xBA, 0x8D }; +static const symbol s_0_33[3] = { 0xEF, 0xBA, 0x8E }; +static const symbol s_0_34[3] = { 0xEF, 0xBA, 0x8F }; +static const symbol s_0_35[3] = { 0xEF, 0xBA, 0x90 }; +static const symbol s_0_36[3] = { 0xEF, 0xBA, 0x91 }; +static const symbol s_0_37[3] = { 0xEF, 0xBA, 0x92 }; +static const symbol s_0_38[3] = { 0xEF, 0xBA, 0x93 }; +static const symbol s_0_39[3] = { 0xEF, 0xBA, 0x94 }; +static const symbol s_0_40[3] = { 0xEF, 0xBA, 0x95 }; +static const symbol s_0_41[3] = { 0xEF, 0xBA, 0x96 }; +static const symbol s_0_42[3] = { 0xEF, 0xBA, 0x97 }; +static const symbol s_0_43[3] = { 0xEF, 0xBA, 0x98 }; +static const symbol s_0_44[3] = { 0xEF, 0xBA, 0x99 }; +static const symbol s_0_45[3] = { 0xEF, 0xBA, 0x9A }; +static const symbol s_0_46[3] = { 0xEF, 0xBA, 0x9B }; +static const symbol s_0_47[3] = { 0xEF, 0xBA, 0x9C }; +static const symbol s_0_48[3] = { 0xEF, 0xBA, 0x9D }; +static const symbol s_0_49[3] = { 0xEF, 0xBA, 0x9E }; +static const symbol s_0_50[3] = { 0xEF, 0xBA, 0x9F }; +static const symbol s_0_51[3] = { 0xEF, 0xBA, 0xA0 }; +static const symbol s_0_52[3] = { 0xEF, 0xBA, 0xA1 }; +static const symbol s_0_53[3] = { 0xEF, 0xBA, 0xA2 }; +static const symbol s_0_54[3] = { 0xEF, 0xBA, 0xA3 }; +static const symbol s_0_55[3] = { 0xEF, 0xBA, 0xA4 }; +static const symbol s_0_56[3] = { 0xEF, 0xBA, 0xA5 }; +static const symbol s_0_57[3] = { 0xEF, 0xBA, 0xA6 }; +static const symbol s_0_58[3] = { 0xEF, 0xBA, 0xA7 }; +static const symbol s_0_59[3] = { 0xEF, 0xBA, 0xA8 }; +static const symbol s_0_60[3] = { 0xEF, 0xBA, 0xA9 }; +static const symbol s_0_61[3] = { 0xEF, 0xBA, 0xAA }; +static const symbol s_0_62[3] = { 0xEF, 0xBA, 0xAB }; +static const symbol s_0_63[3] = { 0xEF, 0xBA, 0xAC }; +static const symbol s_0_64[3] = { 0xEF, 0xBA, 0xAD }; +static const symbol s_0_65[3] = { 0xEF, 0xBA, 0xAE }; +static const symbol s_0_66[3] = { 0xEF, 0xBA, 0xAF }; +static const symbol s_0_67[3] = { 0xEF, 0xBA, 0xB0 }; +static const symbol s_0_68[3] = { 0xEF, 0xBA, 0xB1 }; +static const symbol s_0_69[3] = { 0xEF, 0xBA, 0xB2 }; +static const symbol s_0_70[3] = { 0xEF, 0xBA, 0xB3 }; +static const symbol s_0_71[3] = { 0xEF, 0xBA, 0xB4 }; +static const symbol s_0_72[3] = { 0xEF, 0xBA, 0xB5 }; +static const symbol s_0_73[3] = { 0xEF, 0xBA, 0xB6 }; +static const symbol s_0_74[3] = { 0xEF, 0xBA, 0xB7 }; +static const symbol s_0_75[3] = { 0xEF, 0xBA, 0xB8 }; +static const symbol s_0_76[3] = { 0xEF, 0xBA, 0xB9 }; +static const symbol s_0_77[3] = { 0xEF, 0xBA, 0xBA }; +static const symbol s_0_78[3] = { 0xEF, 0xBA, 0xBB }; +static const symbol s_0_79[3] = { 0xEF, 0xBA, 0xBC }; +static const symbol s_0_80[3] = { 0xEF, 0xBA, 0xBD }; +static const symbol s_0_81[3] = { 0xEF, 0xBA, 0xBE }; +static const symbol s_0_82[3] = { 0xEF, 0xBA, 0xBF }; +static const symbol s_0_83[3] = { 0xEF, 0xBB, 0x80 }; +static const symbol s_0_84[3] = { 0xEF, 0xBB, 0x81 }; +static const symbol s_0_85[3] = { 0xEF, 0xBB, 0x82 }; +static const symbol s_0_86[3] = { 0xEF, 0xBB, 0x83 }; +static const symbol s_0_87[3] = { 0xEF, 0xBB, 0x84 }; +static const symbol s_0_88[3] = { 0xEF, 0xBB, 0x85 }; +static const symbol s_0_89[3] = { 0xEF, 0xBB, 0x86 }; +static const symbol s_0_90[3] = { 0xEF, 0xBB, 0x87 }; +static const symbol s_0_91[3] = { 0xEF, 0xBB, 0x88 }; +static const symbol s_0_92[3] = { 0xEF, 0xBB, 0x89 }; +static const symbol s_0_93[3] = { 0xEF, 0xBB, 0x8A }; +static const symbol s_0_94[3] = { 0xEF, 0xBB, 0x8B }; +static const symbol s_0_95[3] = { 0xEF, 0xBB, 0x8C }; +static const symbol s_0_96[3] = { 0xEF, 0xBB, 0x8D }; +static const symbol s_0_97[3] = { 0xEF, 0xBB, 0x8E }; +static const symbol s_0_98[3] = { 0xEF, 0xBB, 0x8F }; +static const symbol s_0_99[3] = { 0xEF, 0xBB, 0x90 }; +static const symbol s_0_100[3] = { 0xEF, 0xBB, 0x91 }; +static const symbol s_0_101[3] = { 0xEF, 0xBB, 0x92 }; +static const symbol s_0_102[3] = { 0xEF, 0xBB, 0x93 }; +static const symbol s_0_103[3] = { 0xEF, 0xBB, 0x94 }; +static const symbol s_0_104[3] = { 0xEF, 0xBB, 0x95 }; +static const symbol s_0_105[3] = { 0xEF, 0xBB, 0x96 }; +static const symbol s_0_106[3] = { 0xEF, 0xBB, 0x97 }; +static const symbol s_0_107[3] = { 0xEF, 0xBB, 0x98 }; +static const symbol s_0_108[3] = { 0xEF, 0xBB, 0x99 }; +static const symbol s_0_109[3] = { 0xEF, 0xBB, 0x9A }; +static const symbol s_0_110[3] = { 0xEF, 0xBB, 0x9B }; +static const symbol s_0_111[3] = { 0xEF, 0xBB, 0x9C }; +static const symbol s_0_112[3] = { 0xEF, 0xBB, 0x9D }; +static const symbol s_0_113[3] = { 0xEF, 0xBB, 0x9E }; +static const symbol s_0_114[3] = { 0xEF, 0xBB, 0x9F }; +static const symbol s_0_115[3] = { 0xEF, 0xBB, 0xA0 }; +static const symbol s_0_116[3] = { 0xEF, 0xBB, 0xA1 }; +static const symbol s_0_117[3] = { 0xEF, 0xBB, 0xA2 }; +static const symbol s_0_118[3] = { 0xEF, 0xBB, 0xA3 }; +static const symbol s_0_119[3] = { 0xEF, 0xBB, 0xA4 }; +static const symbol s_0_120[3] = { 0xEF, 0xBB, 0xA5 }; +static const symbol s_0_121[3] = { 0xEF, 0xBB, 0xA6 }; +static const symbol s_0_122[3] = { 0xEF, 0xBB, 0xA7 }; +static const symbol s_0_123[3] = { 0xEF, 0xBB, 0xA8 }; +static const symbol s_0_124[3] = { 0xEF, 0xBB, 0xA9 }; +static const symbol s_0_125[3] = { 0xEF, 0xBB, 0xAA }; +static const symbol s_0_126[3] = { 0xEF, 0xBB, 0xAB }; +static const symbol s_0_127[3] = { 0xEF, 0xBB, 0xAC }; +static const symbol s_0_128[3] = { 0xEF, 0xBB, 0xAD }; +static const symbol s_0_129[3] = { 0xEF, 0xBB, 0xAE }; +static const symbol s_0_130[3] = { 0xEF, 0xBB, 0xAF }; +static const symbol s_0_131[3] = { 0xEF, 0xBB, 0xB0 }; +static const symbol s_0_132[3] = { 0xEF, 0xBB, 0xB1 }; +static const symbol s_0_133[3] = { 0xEF, 0xBB, 0xB2 }; +static const symbol s_0_134[3] = { 0xEF, 0xBB, 0xB3 }; +static const symbol s_0_135[3] = { 0xEF, 0xBB, 0xB4 }; +static const symbol s_0_136[3] = { 0xEF, 0xBB, 0xB5 }; +static const symbol s_0_137[3] = { 0xEF, 0xBB, 0xB6 }; +static const symbol s_0_138[3] = { 0xEF, 0xBB, 0xB7 }; +static const symbol s_0_139[3] = { 0xEF, 0xBB, 0xB8 }; +static const symbol s_0_140[3] = { 0xEF, 0xBB, 0xB9 }; +static const symbol s_0_141[3] = { 0xEF, 0xBB, 0xBA }; +static const symbol s_0_142[3] = { 0xEF, 0xBB, 0xBB }; +static const symbol s_0_143[3] = { 0xEF, 0xBB, 0xBC }; + +static const struct among a_0[144] = +{ +/* 0 */ { 2, s_0_0, -1, 1, 0}, +/* 1 */ { 2, s_0_1, -1, 1, 0}, +/* 2 */ { 2, s_0_2, -1, 1, 0}, +/* 3 */ { 2, s_0_3, -1, 1, 0}, +/* 4 */ { 2, s_0_4, -1, 1, 0}, +/* 5 */ { 2, s_0_5, -1, 1, 0}, +/* 6 */ { 2, s_0_6, -1, 1, 0}, +/* 7 */ { 2, s_0_7, -1, 1, 0}, +/* 8 */ { 2, s_0_8, -1, 1, 0}, +/* 9 */ { 2, s_0_9, -1, 2, 0}, +/* 10 */ { 2, s_0_10, -1, 3, 0}, +/* 11 */ { 2, s_0_11, -1, 4, 0}, +/* 12 */ { 2, s_0_12, -1, 5, 0}, +/* 13 */ { 2, s_0_13, -1, 6, 0}, +/* 14 */ { 2, s_0_14, -1, 7, 0}, +/* 15 */ { 2, s_0_15, -1, 8, 0}, +/* 16 */ { 2, s_0_16, -1, 9, 0}, +/* 17 */ { 2, s_0_17, -1, 10, 0}, +/* 18 */ { 2, s_0_18, -1, 11, 0}, +/* 19 */ { 3, s_0_19, -1, 12, 0}, +/* 20 */ { 3, s_0_20, -1, 16, 0}, +/* 21 */ { 3, s_0_21, -1, 16, 0}, +/* 22 */ { 3, s_0_22, -1, 13, 0}, +/* 23 */ { 3, s_0_23, -1, 13, 0}, +/* 24 */ { 3, s_0_24, -1, 17, 0}, +/* 25 */ { 3, s_0_25, -1, 17, 0}, +/* 26 */ { 3, s_0_26, -1, 14, 0}, +/* 27 */ { 3, s_0_27, -1, 14, 0}, +/* 28 */ { 3, s_0_28, -1, 15, 0}, +/* 29 */ { 3, s_0_29, -1, 15, 0}, +/* 30 */ { 3, s_0_30, -1, 15, 0}, +/* 31 */ { 3, s_0_31, -1, 15, 0}, +/* 32 */ { 3, s_0_32, -1, 18, 0}, +/* 33 */ { 3, s_0_33, -1, 18, 0}, +/* 34 */ { 3, s_0_34, -1, 19, 0}, +/* 35 */ { 3, s_0_35, -1, 19, 0}, +/* 36 */ { 3, s_0_36, -1, 19, 0}, +/* 37 */ { 3, s_0_37, -1, 19, 0}, +/* 38 */ { 3, s_0_38, -1, 20, 0}, +/* 39 */ { 3, s_0_39, -1, 20, 0}, +/* 40 */ { 3, s_0_40, -1, 21, 0}, +/* 41 */ { 3, s_0_41, -1, 21, 0}, +/* 42 */ { 3, s_0_42, -1, 21, 0}, +/* 43 */ { 3, s_0_43, -1, 21, 0}, +/* 44 */ { 3, s_0_44, -1, 22, 0}, +/* 45 */ { 3, s_0_45, -1, 22, 0}, +/* 46 */ { 3, s_0_46, -1, 22, 0}, +/* 47 */ { 3, s_0_47, -1, 22, 0}, +/* 48 */ { 3, s_0_48, -1, 23, 0}, +/* 49 */ { 3, s_0_49, -1, 23, 0}, +/* 50 */ { 3, s_0_50, -1, 23, 0}, +/* 51 */ { 3, s_0_51, -1, 23, 0}, +/* 52 */ { 3, s_0_52, -1, 24, 0}, +/* 53 */ { 3, s_0_53, -1, 24, 0}, +/* 54 */ { 3, s_0_54, -1, 24, 0}, +/* 55 */ { 3, s_0_55, -1, 24, 0}, +/* 56 */ { 3, s_0_56, -1, 25, 0}, +/* 57 */ { 3, s_0_57, -1, 25, 0}, +/* 58 */ { 3, s_0_58, -1, 25, 0}, +/* 59 */ { 3, s_0_59, -1, 25, 0}, +/* 60 */ { 3, s_0_60, -1, 26, 0}, +/* 61 */ { 3, s_0_61, -1, 26, 0}, +/* 62 */ { 3, s_0_62, -1, 27, 0}, +/* 63 */ { 3, s_0_63, -1, 27, 0}, +/* 64 */ { 3, s_0_64, -1, 28, 0}, +/* 65 */ { 3, s_0_65, -1, 28, 0}, +/* 66 */ { 3, s_0_66, -1, 29, 0}, +/* 67 */ { 3, s_0_67, -1, 29, 0}, +/* 68 */ { 3, s_0_68, -1, 30, 0}, +/* 69 */ { 3, s_0_69, -1, 30, 0}, +/* 70 */ { 3, s_0_70, -1, 30, 0}, +/* 71 */ { 3, s_0_71, -1, 30, 0}, +/* 72 */ { 3, s_0_72, -1, 31, 0}, +/* 73 */ { 3, s_0_73, -1, 31, 0}, +/* 74 */ { 3, s_0_74, -1, 31, 0}, +/* 75 */ { 3, s_0_75, -1, 31, 0}, +/* 76 */ { 3, s_0_76, -1, 32, 0}, +/* 77 */ { 3, s_0_77, -1, 32, 0}, +/* 78 */ { 3, s_0_78, -1, 32, 0}, +/* 79 */ { 3, s_0_79, -1, 32, 0}, +/* 80 */ { 3, s_0_80, -1, 33, 0}, +/* 81 */ { 3, s_0_81, -1, 33, 0}, +/* 82 */ { 3, s_0_82, -1, 33, 0}, +/* 83 */ { 3, s_0_83, -1, 33, 0}, +/* 84 */ { 3, s_0_84, -1, 34, 0}, +/* 85 */ { 3, s_0_85, -1, 34, 0}, +/* 86 */ { 3, s_0_86, -1, 34, 0}, +/* 87 */ { 3, s_0_87, -1, 34, 0}, +/* 88 */ { 3, s_0_88, -1, 35, 0}, +/* 89 */ { 3, s_0_89, -1, 35, 0}, +/* 90 */ { 3, s_0_90, -1, 35, 0}, +/* 91 */ { 3, s_0_91, -1, 35, 0}, +/* 92 */ { 3, s_0_92, -1, 36, 0}, +/* 93 */ { 3, s_0_93, -1, 36, 0}, +/* 94 */ { 3, s_0_94, -1, 36, 0}, +/* 95 */ { 3, s_0_95, -1, 36, 0}, +/* 96 */ { 3, s_0_96, -1, 37, 0}, +/* 97 */ { 3, s_0_97, -1, 37, 0}, +/* 98 */ { 3, s_0_98, -1, 37, 0}, +/* 99 */ { 3, s_0_99, -1, 37, 0}, +/*100 */ { 3, s_0_100, -1, 38, 0}, +/*101 */ { 3, s_0_101, -1, 38, 0}, +/*102 */ { 3, s_0_102, -1, 38, 0}, +/*103 */ { 3, s_0_103, -1, 38, 0}, +/*104 */ { 3, s_0_104, -1, 39, 0}, +/*105 */ { 3, s_0_105, -1, 39, 0}, +/*106 */ { 3, s_0_106, -1, 39, 0}, +/*107 */ { 3, s_0_107, -1, 39, 0}, +/*108 */ { 3, s_0_108, -1, 40, 0}, +/*109 */ { 3, s_0_109, -1, 40, 0}, +/*110 */ { 3, s_0_110, -1, 40, 0}, +/*111 */ { 3, s_0_111, -1, 40, 0}, +/*112 */ { 3, s_0_112, -1, 41, 0}, +/*113 */ { 3, s_0_113, -1, 41, 0}, +/*114 */ { 3, s_0_114, -1, 41, 0}, +/*115 */ { 3, s_0_115, -1, 41, 0}, +/*116 */ { 3, s_0_116, -1, 42, 0}, +/*117 */ { 3, s_0_117, -1, 42, 0}, +/*118 */ { 3, s_0_118, -1, 42, 0}, +/*119 */ { 3, s_0_119, -1, 42, 0}, +/*120 */ { 3, s_0_120, -1, 43, 0}, +/*121 */ { 3, s_0_121, -1, 43, 0}, +/*122 */ { 3, s_0_122, -1, 43, 0}, +/*123 */ { 3, s_0_123, -1, 43, 0}, +/*124 */ { 3, s_0_124, -1, 44, 0}, +/*125 */ { 3, s_0_125, -1, 44, 0}, +/*126 */ { 3, s_0_126, -1, 44, 0}, +/*127 */ { 3, s_0_127, -1, 44, 0}, +/*128 */ { 3, s_0_128, -1, 45, 0}, +/*129 */ { 3, s_0_129, -1, 45, 0}, +/*130 */ { 3, s_0_130, -1, 46, 0}, +/*131 */ { 3, s_0_131, -1, 46, 0}, +/*132 */ { 3, s_0_132, -1, 47, 0}, +/*133 */ { 3, s_0_133, -1, 47, 0}, +/*134 */ { 3, s_0_134, -1, 47, 0}, +/*135 */ { 3, s_0_135, -1, 47, 0}, +/*136 */ { 3, s_0_136, -1, 51, 0}, +/*137 */ { 3, s_0_137, -1, 51, 0}, +/*138 */ { 3, s_0_138, -1, 49, 0}, +/*139 */ { 3, s_0_139, -1, 49, 0}, +/*140 */ { 3, s_0_140, -1, 50, 0}, +/*141 */ { 3, s_0_141, -1, 50, 0}, +/*142 */ { 3, s_0_142, -1, 48, 0}, +/*143 */ { 3, s_0_143, -1, 48, 0} +}; + +static const symbol s_1_0[2] = { 0xD8, 0xA2 }; +static const symbol s_1_1[2] = { 0xD8, 0xA3 }; +static const symbol s_1_2[2] = { 0xD8, 0xA4 }; +static const symbol s_1_3[2] = { 0xD8, 0xA5 }; +static const symbol s_1_4[2] = { 0xD8, 0xA6 }; + +static const struct among a_1[5] = +{ +/* 0 */ { 2, s_1_0, -1, 1, 0}, +/* 1 */ { 2, s_1_1, -1, 1, 0}, +/* 2 */ { 2, s_1_2, -1, 1, 0}, +/* 3 */ { 2, s_1_3, -1, 1, 0}, +/* 4 */ { 2, s_1_4, -1, 1, 0} +}; + +static const symbol s_2_0[2] = { 0xD8, 0xA2 }; +static const symbol s_2_1[2] = { 0xD8, 0xA3 }; +static const symbol s_2_2[2] = { 0xD8, 0xA4 }; +static const symbol s_2_3[2] = { 0xD8, 0xA5 }; +static const symbol s_2_4[2] = { 0xD8, 0xA6 }; + +static const struct among a_2[5] = +{ +/* 0 */ { 2, s_2_0, -1, 1, 0}, +/* 1 */ { 2, s_2_1, -1, 1, 0}, +/* 2 */ { 2, s_2_2, -1, 2, 0}, +/* 3 */ { 2, s_2_3, -1, 1, 0}, +/* 4 */ { 2, s_2_4, -1, 3, 0} +}; + +static const symbol s_3_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 }; +static const symbol s_3_1[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84 }; +static const symbol s_3_2[6] = { 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84 }; +static const symbol s_3_3[4] = { 0xD9, 0x84, 0xD9, 0x84 }; + +static const struct among a_3[4] = +{ +/* 0 */ { 4, s_3_0, -1, 2, 0}, +/* 1 */ { 6, s_3_1, -1, 1, 0}, +/* 2 */ { 6, s_3_2, -1, 1, 0}, +/* 3 */ { 4, s_3_3, -1, 2, 0} +}; + +static const symbol s_4_0[4] = { 0xD8, 0xA3, 0xD8, 0xA2 }; +static const symbol s_4_1[4] = { 0xD8, 0xA3, 0xD8, 0xA3 }; +static const symbol s_4_2[4] = { 0xD8, 0xA3, 0xD8, 0xA4 }; +static const symbol s_4_3[4] = { 0xD8, 0xA3, 0xD8, 0xA5 }; +static const symbol s_4_4[4] = { 0xD8, 0xA3, 0xD8, 0xA7 }; + +static const struct among a_4[5] = +{ +/* 0 */ { 4, s_4_0, -1, 2, 0}, +/* 1 */ { 4, s_4_1, -1, 1, 0}, +/* 2 */ { 4, s_4_2, -1, 1, 0}, +/* 3 */ { 4, s_4_3, -1, 4, 0}, +/* 4 */ { 4, s_4_4, -1, 3, 0} +}; + +static const symbol s_5_0[2] = { 0xD9, 0x81 }; +static const symbol s_5_1[2] = { 0xD9, 0x88 }; + +static const struct among a_5[2] = +{ +/* 0 */ { 2, s_5_0, -1, 1, 0}, +/* 1 */ { 2, s_5_1, -1, 1, 0} +}; + +static const symbol s_6_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 }; +static const symbol s_6_1[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84 }; +static const symbol s_6_2[6] = { 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84 }; +static const symbol s_6_3[4] = { 0xD9, 0x84, 0xD9, 0x84 }; + +static const struct among a_6[4] = +{ +/* 0 */ { 4, s_6_0, -1, 2, 0}, +/* 1 */ { 6, s_6_1, -1, 1, 0}, +/* 2 */ { 6, s_6_2, -1, 1, 0}, +/* 3 */ { 4, s_6_3, -1, 2, 0} +}; + +static const symbol s_7_0[2] = { 0xD8, 0xA8 }; +static const symbol s_7_1[4] = { 0xD8, 0xA8, 0xD8, 0xA8 }; +static const symbol s_7_2[4] = { 0xD9, 0x83, 0xD9, 0x83 }; + +static const struct among a_7[3] = +{ +/* 0 */ { 2, s_7_0, -1, 1, 0}, +/* 1 */ { 4, s_7_1, 0, 2, 0}, +/* 2 */ { 4, s_7_2, -1, 3, 0} +}; + +static const symbol s_8_0[4] = { 0xD8, 0xB3, 0xD8, 0xA3 }; +static const symbol s_8_1[4] = { 0xD8, 0xB3, 0xD8, 0xAA }; +static const symbol s_8_2[4] = { 0xD8, 0xB3, 0xD9, 0x86 }; +static const symbol s_8_3[4] = { 0xD8, 0xB3, 0xD9, 0x8A }; + +static const struct among a_8[4] = +{ +/* 0 */ { 4, s_8_0, -1, 4, 0}, +/* 1 */ { 4, s_8_1, -1, 2, 0}, +/* 2 */ { 4, s_8_2, -1, 3, 0}, +/* 3 */ { 4, s_8_3, -1, 1, 0} +}; + +static const symbol s_9_0[6] = { 0xD8, 0xAA, 0xD8, 0xB3, 0xD8, 0xAA }; +static const symbol s_9_1[6] = { 0xD9, 0x86, 0xD8, 0xB3, 0xD8, 0xAA }; +static const symbol s_9_2[6] = { 0xD9, 0x8A, 0xD8, 0xB3, 0xD8, 0xAA }; + +static const struct among a_9[3] = +{ +/* 0 */ { 6, s_9_0, -1, 1, 0}, +/* 1 */ { 6, s_9_1, -1, 1, 0}, +/* 2 */ { 6, s_9_2, -1, 1, 0} +}; + +static const symbol s_10_0[2] = { 0xD9, 0x83 }; +static const symbol s_10_1[4] = { 0xD9, 0x83, 0xD9, 0x85 }; +static const symbol s_10_2[4] = { 0xD9, 0x87, 0xD9, 0x85 }; +static const symbol s_10_3[4] = { 0xD9, 0x87, 0xD9, 0x86 }; +static const symbol s_10_4[2] = { 0xD9, 0x87 }; +static const symbol s_10_5[2] = { 0xD9, 0x8A }; +static const symbol s_10_6[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7 }; +static const symbol s_10_7[6] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7 }; +static const symbol s_10_8[4] = { 0xD9, 0x86, 0xD8, 0xA7 }; +static const symbol s_10_9[4] = { 0xD9, 0x87, 0xD8, 0xA7 }; + +static const struct among a_10[10] = +{ +/* 0 */ { 2, s_10_0, -1, 1, 0}, +/* 1 */ { 4, s_10_1, -1, 2, 0}, +/* 2 */ { 4, s_10_2, -1, 2, 0}, +/* 3 */ { 4, s_10_3, -1, 2, 0}, +/* 4 */ { 2, s_10_4, -1, 1, 0}, +/* 5 */ { 2, s_10_5, -1, 1, 0}, +/* 6 */ { 6, s_10_6, -1, 3, 0}, +/* 7 */ { 6, s_10_7, -1, 3, 0}, +/* 8 */ { 4, s_10_8, -1, 2, 0}, +/* 9 */ { 4, s_10_9, -1, 2, 0} +}; + +static const symbol s_11_0[2] = { 0xD9, 0x86 }; + +static const struct among a_11[1] = +{ +/* 0 */ { 2, s_11_0, -1, 1, 0} +}; + +static const symbol s_12_0[2] = { 0xD9, 0x88 }; +static const symbol s_12_1[2] = { 0xD9, 0x8A }; +static const symbol s_12_2[2] = { 0xD8, 0xA7 }; + +static const struct among a_12[3] = +{ +/* 0 */ { 2, s_12_0, -1, 1, 0}, +/* 1 */ { 2, s_12_1, -1, 1, 0}, +/* 2 */ { 2, s_12_2, -1, 1, 0} +}; + +static const symbol s_13_0[4] = { 0xD8, 0xA7, 0xD8, 0xAA }; + +static const struct among a_13[1] = +{ +/* 0 */ { 4, s_13_0, -1, 1, 0} +}; + +static const symbol s_14_0[2] = { 0xD8, 0xAA }; + +static const struct among a_14[1] = +{ +/* 0 */ { 2, s_14_0, -1, 1, 0} +}; + +static const symbol s_15_0[2] = { 0xD8, 0xA9 }; + +static const struct among a_15[1] = +{ +/* 0 */ { 2, s_15_0, -1, 1, 0} +}; + +static const symbol s_16_0[2] = { 0xD9, 0x8A }; + +static const struct among a_16[1] = +{ +/* 0 */ { 2, s_16_0, -1, 1, 0} +}; + +static const symbol s_17_0[2] = { 0xD9, 0x83 }; +static const symbol s_17_1[4] = { 0xD9, 0x83, 0xD9, 0x85 }; +static const symbol s_17_2[4] = { 0xD9, 0x87, 0xD9, 0x85 }; +static const symbol s_17_3[4] = { 0xD9, 0x83, 0xD9, 0x86 }; +static const symbol s_17_4[4] = { 0xD9, 0x87, 0xD9, 0x86 }; +static const symbol s_17_5[2] = { 0xD9, 0x87 }; +static const symbol s_17_6[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x88 }; +static const symbol s_17_7[4] = { 0xD9, 0x86, 0xD9, 0x8A }; +static const symbol s_17_8[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7 }; +static const symbol s_17_9[6] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7 }; +static const symbol s_17_10[4] = { 0xD9, 0x86, 0xD8, 0xA7 }; +static const symbol s_17_11[4] = { 0xD9, 0x87, 0xD8, 0xA7 }; + +static const struct among a_17[12] = +{ +/* 0 */ { 2, s_17_0, -1, 1, 0}, +/* 1 */ { 4, s_17_1, -1, 2, 0}, +/* 2 */ { 4, s_17_2, -1, 2, 0}, +/* 3 */ { 4, s_17_3, -1, 2, 0}, +/* 4 */ { 4, s_17_4, -1, 2, 0}, +/* 5 */ { 2, s_17_5, -1, 1, 0}, +/* 6 */ { 6, s_17_6, -1, 3, 0}, +/* 7 */ { 4, s_17_7, -1, 2, 0}, +/* 8 */ { 6, s_17_8, -1, 3, 0}, +/* 9 */ { 6, s_17_9, -1, 3, 0}, +/* 10 */ { 4, s_17_10, -1, 2, 0}, +/* 11 */ { 4, s_17_11, -1, 2, 0} +}; + +static const symbol s_18_0[2] = { 0xD9, 0x86 }; +static const symbol s_18_1[4] = { 0xD9, 0x88, 0xD9, 0x86 }; +static const symbol s_18_2[4] = { 0xD9, 0x8A, 0xD9, 0x86 }; +static const symbol s_18_3[4] = { 0xD8, 0xA7, 0xD9, 0x86 }; +static const symbol s_18_4[4] = { 0xD8, 0xAA, 0xD9, 0x86 }; +static const symbol s_18_5[2] = { 0xD9, 0x8A }; +static const symbol s_18_6[2] = { 0xD8, 0xA7 }; +static const symbol s_18_7[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xA7 }; +static const symbol s_18_8[4] = { 0xD9, 0x86, 0xD8, 0xA7 }; +static const symbol s_18_9[4] = { 0xD8, 0xAA, 0xD8, 0xA7 }; +static const symbol s_18_10[2] = { 0xD8, 0xAA }; + +static const struct among a_18[11] = +{ +/* 0 */ { 2, s_18_0, -1, 1, 0}, +/* 1 */ { 4, s_18_1, 0, 3, 0}, +/* 2 */ { 4, s_18_2, 0, 3, 0}, +/* 3 */ { 4, s_18_3, 0, 3, 0}, +/* 4 */ { 4, s_18_4, 0, 2, 0}, +/* 5 */ { 2, s_18_5, -1, 1, 0}, +/* 6 */ { 2, s_18_6, -1, 1, 0}, +/* 7 */ { 6, s_18_7, 6, 4, 0}, +/* 8 */ { 4, s_18_8, 6, 2, 0}, +/* 9 */ { 4, s_18_9, 6, 2, 0}, +/* 10 */ { 2, s_18_10, -1, 1, 0} +}; + +static const symbol s_19_0[4] = { 0xD8, 0xAA, 0xD9, 0x85 }; +static const symbol s_19_1[4] = { 0xD9, 0x88, 0xD8, 0xA7 }; + +static const struct among a_19[2] = +{ +/* 0 */ { 4, s_19_0, -1, 1, 0}, +/* 1 */ { 4, s_19_1, -1, 1, 0} +}; + +static const symbol s_20_0[2] = { 0xD9, 0x88 }; +static const symbol s_20_1[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x88 }; + +static const struct among a_20[2] = +{ +/* 0 */ { 2, s_20_0, -1, 1, 0}, +/* 1 */ { 6, s_20_1, 0, 2, 0} +}; + +static const symbol s_21_0[2] = { 0xD9, 0x89 }; + +static const struct among a_21[1] = +{ +/* 0 */ { 2, s_21_0, -1, 1, 0} +}; + +static const symbol s_0[] = { '0' }; +static const symbol s_1[] = { '1' }; +static const symbol s_2[] = { '2' }; +static const symbol s_3[] = { '3' }; +static const symbol s_4[] = { '4' }; +static const symbol s_5[] = { '5' }; +static const symbol s_6[] = { '6' }; +static const symbol s_7[] = { '7' }; +static const symbol s_8[] = { '8' }; +static const symbol s_9[] = { '9' }; +static const symbol s_10[] = { 0xD8, 0xA1 }; +static const symbol s_11[] = { 0xD8, 0xA3 }; +static const symbol s_12[] = { 0xD8, 0xA5 }; +static const symbol s_13[] = { 0xD8, 0xA6 }; +static const symbol s_14[] = { 0xD8, 0xA2 }; +static const symbol s_15[] = { 0xD8, 0xA4 }; +static const symbol s_16[] = { 0xD8, 0xA7 }; +static const symbol s_17[] = { 0xD8, 0xA8 }; +static const symbol s_18[] = { 0xD8, 0xA9 }; +static const symbol s_19[] = { 0xD8, 0xAA }; +static const symbol s_20[] = { 0xD8, 0xAB }; +static const symbol s_21[] = { 0xD8, 0xAC }; +static const symbol s_22[] = { 0xD8, 0xAD }; +static const symbol s_23[] = { 0xD8, 0xAE }; +static const symbol s_24[] = { 0xD8, 0xAF }; +static const symbol s_25[] = { 0xD8, 0xB0 }; +static const symbol s_26[] = { 0xD8, 0xB1 }; +static const symbol s_27[] = { 0xD8, 0xB2 }; +static const symbol s_28[] = { 0xD8, 0xB3 }; +static const symbol s_29[] = { 0xD8, 0xB4 }; +static const symbol s_30[] = { 0xD8, 0xB5 }; +static const symbol s_31[] = { 0xD8, 0xB6 }; +static const symbol s_32[] = { 0xD8, 0xB7 }; +static const symbol s_33[] = { 0xD8, 0xB8 }; +static const symbol s_34[] = { 0xD8, 0xB9 }; +static const symbol s_35[] = { 0xD8, 0xBA }; +static const symbol s_36[] = { 0xD9, 0x81 }; +static const symbol s_37[] = { 0xD9, 0x82 }; +static const symbol s_38[] = { 0xD9, 0x83 }; +static const symbol s_39[] = { 0xD9, 0x84 }; +static const symbol s_40[] = { 0xD9, 0x85 }; +static const symbol s_41[] = { 0xD9, 0x86 }; +static const symbol s_42[] = { 0xD9, 0x87 }; +static const symbol s_43[] = { 0xD9, 0x88 }; +static const symbol s_44[] = { 0xD9, 0x89 }; +static const symbol s_45[] = { 0xD9, 0x8A }; +static const symbol s_46[] = { 0xD9, 0x84, 0xD8, 0xA7 }; +static const symbol s_47[] = { 0xD9, 0x84, 0xD8, 0xA3 }; +static const symbol s_48[] = { 0xD9, 0x84, 0xD8, 0xA5 }; +static const symbol s_49[] = { 0xD9, 0x84, 0xD8, 0xA2 }; +static const symbol s_50[] = { 0xD8, 0xA1 }; +static const symbol s_51[] = { 0xD8, 0xA7 }; +static const symbol s_52[] = { 0xD9, 0x88 }; +static const symbol s_53[] = { 0xD9, 0x8A }; +static const symbol s_54[] = { 0xD8, 0xA3 }; +static const symbol s_55[] = { 0xD8, 0xA2 }; +static const symbol s_56[] = { 0xD8, 0xA7 }; +static const symbol s_57[] = { 0xD8, 0xA5 }; +static const symbol s_58[] = { 0xD9, 0x81, 0xD8, 0xA7 }; +static const symbol s_59[] = { 0xD9, 0x88, 0xD8, 0xA7 }; +static const symbol s_60[] = { 0xD8, 0xA8, 0xD8, 0xA7 }; +static const symbol s_61[] = { 0xD8, 0xA8 }; +static const symbol s_62[] = { 0xD9, 0x83 }; +static const symbol s_63[] = { 0xD9, 0x8A }; +static const symbol s_64[] = { 0xD8, 0xAA }; +static const symbol s_65[] = { 0xD9, 0x86 }; +static const symbol s_66[] = { 0xD8, 0xA3 }; +static const symbol s_67[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA }; +static const symbol s_68[] = { 0xD9, 0x8A }; + +static int r_Normalize_pre(struct SN_env * z) { /* forwardmode */ + int among_var; + { int c1 = z->c; /* do, line 247 */ + while(1) { /* repeat, line 247 */ + int c2 = z->c; + { int c3 = z->c; /* or, line 311 */ + z->bra = z->c; /* [, line 249 */ + among_var = find_among(z, a_0, 144); /* substring, line 249 */ + if (!(among_var)) goto lab3; + z->ket = z->c; /* ], line 249 */ + switch (among_var) { /* among, line 249 */ + case 1: + { int ret = slice_del(z); /* delete, line 250 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_0); /* <-, line 254 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_1); /* <-, line 255 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 1, s_2); /* <-, line 256 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 1, s_3); /* <-, line 257 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_from_s(z, 1, s_4); /* <-, line 258 */ + if (ret < 0) return ret; + } + break; + case 7: + { int ret = slice_from_s(z, 1, s_5); /* <-, line 259 */ + if (ret < 0) return ret; + } + break; + case 8: + { int ret = slice_from_s(z, 1, s_6); /* <-, line 260 */ + if (ret < 0) return ret; + } + break; + case 9: + { int ret = slice_from_s(z, 1, s_7); /* <-, line 261 */ + if (ret < 0) return ret; + } + break; + case 10: + { int ret = slice_from_s(z, 1, s_8); /* <-, line 262 */ + if (ret < 0) return ret; + } + break; + case 11: + { int ret = slice_from_s(z, 1, s_9); /* <-, line 263 */ + if (ret < 0) return ret; + } + break; + case 12: + { int ret = slice_from_s(z, 2, s_10); /* <-, line 266 */ + if (ret < 0) return ret; + } + break; + case 13: + { int ret = slice_from_s(z, 2, s_11); /* <-, line 267 */ + if (ret < 0) return ret; + } + break; + case 14: + { int ret = slice_from_s(z, 2, s_12); /* <-, line 268 */ + if (ret < 0) return ret; + } + break; + case 15: + { int ret = slice_from_s(z, 2, s_13); /* <-, line 269 */ + if (ret < 0) return ret; + } + break; + case 16: + { int ret = slice_from_s(z, 2, s_14); /* <-, line 270 */ + if (ret < 0) return ret; + } + break; + case 17: + { int ret = slice_from_s(z, 2, s_15); /* <-, line 271 */ + if (ret < 0) return ret; + } + break; + case 18: + { int ret = slice_from_s(z, 2, s_16); /* <-, line 272 */ + if (ret < 0) return ret; + } + break; + case 19: + { int ret = slice_from_s(z, 2, s_17); /* <-, line 273 */ + if (ret < 0) return ret; + } + break; + case 20: + { int ret = slice_from_s(z, 2, s_18); /* <-, line 274 */ + if (ret < 0) return ret; + } + break; + case 21: + { int ret = slice_from_s(z, 2, s_19); /* <-, line 275 */ + if (ret < 0) return ret; + } + break; + case 22: + { int ret = slice_from_s(z, 2, s_20); /* <-, line 276 */ + if (ret < 0) return ret; + } + break; + case 23: + { int ret = slice_from_s(z, 2, s_21); /* <-, line 277 */ + if (ret < 0) return ret; + } + break; + case 24: + { int ret = slice_from_s(z, 2, s_22); /* <-, line 278 */ + if (ret < 0) return ret; + } + break; + case 25: + { int ret = slice_from_s(z, 2, s_23); /* <-, line 279 */ + if (ret < 0) return ret; + } + break; + case 26: + { int ret = slice_from_s(z, 2, s_24); /* <-, line 280 */ + if (ret < 0) return ret; + } + break; + case 27: + { int ret = slice_from_s(z, 2, s_25); /* <-, line 281 */ + if (ret < 0) return ret; + } + break; + case 28: + { int ret = slice_from_s(z, 2, s_26); /* <-, line 282 */ + if (ret < 0) return ret; + } + break; + case 29: + { int ret = slice_from_s(z, 2, s_27); /* <-, line 283 */ + if (ret < 0) return ret; + } + break; + case 30: + { int ret = slice_from_s(z, 2, s_28); /* <-, line 284 */ + if (ret < 0) return ret; + } + break; + case 31: + { int ret = slice_from_s(z, 2, s_29); /* <-, line 285 */ + if (ret < 0) return ret; + } + break; + case 32: + { int ret = slice_from_s(z, 2, s_30); /* <-, line 286 */ + if (ret < 0) return ret; + } + break; + case 33: + { int ret = slice_from_s(z, 2, s_31); /* <-, line 287 */ + if (ret < 0) return ret; + } + break; + case 34: + { int ret = slice_from_s(z, 2, s_32); /* <-, line 288 */ + if (ret < 0) return ret; + } + break; + case 35: + { int ret = slice_from_s(z, 2, s_33); /* <-, line 289 */ + if (ret < 0) return ret; + } + break; + case 36: + { int ret = slice_from_s(z, 2, s_34); /* <-, line 290 */ + if (ret < 0) return ret; + } + break; + case 37: + { int ret = slice_from_s(z, 2, s_35); /* <-, line 291 */ + if (ret < 0) return ret; + } + break; + case 38: + { int ret = slice_from_s(z, 2, s_36); /* <-, line 292 */ + if (ret < 0) return ret; + } + break; + case 39: + { int ret = slice_from_s(z, 2, s_37); /* <-, line 293 */ + if (ret < 0) return ret; + } + break; + case 40: + { int ret = slice_from_s(z, 2, s_38); /* <-, line 294 */ + if (ret < 0) return ret; + } + break; + case 41: + { int ret = slice_from_s(z, 2, s_39); /* <-, line 295 */ + if (ret < 0) return ret; + } + break; + case 42: + { int ret = slice_from_s(z, 2, s_40); /* <-, line 296 */ + if (ret < 0) return ret; + } + break; + case 43: + { int ret = slice_from_s(z, 2, s_41); /* <-, line 297 */ + if (ret < 0) return ret; + } + break; + case 44: + { int ret = slice_from_s(z, 2, s_42); /* <-, line 298 */ + if (ret < 0) return ret; + } + break; + case 45: + { int ret = slice_from_s(z, 2, s_43); /* <-, line 299 */ + if (ret < 0) return ret; + } + break; + case 46: + { int ret = slice_from_s(z, 2, s_44); /* <-, line 300 */ + if (ret < 0) return ret; + } + break; + case 47: + { int ret = slice_from_s(z, 2, s_45); /* <-, line 301 */ + if (ret < 0) return ret; + } + break; + case 48: + { int ret = slice_from_s(z, 4, s_46); /* <-, line 304 */ + if (ret < 0) return ret; + } + break; + case 49: + { int ret = slice_from_s(z, 4, s_47); /* <-, line 305 */ + if (ret < 0) return ret; + } + break; + case 50: + { int ret = slice_from_s(z, 4, s_48); /* <-, line 306 */ + if (ret < 0) return ret; + } + break; + case 51: + { int ret = slice_from_s(z, 4, s_49); /* <-, line 307 */ + if (ret < 0) return ret; + } + break; + } + goto lab2; + lab3: + z->c = c3; + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab1; + z->c = ret; /* next, line 312 */ + } + } + lab2: + continue; + lab1: + z->c = c2; + break; + } + z->c = c1; + } + return 1; +} + +static int r_Normalize_post(struct SN_env * z) { /* forwardmode */ + int among_var; + { int c1 = z->c; /* do, line 318 */ + z->lb = z->c; z->c = z->l; /* backwards, line 320 */ + + z->ket = z->c; /* [, line 321 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 321 */ + if (!(find_among_b(z, a_1, 5))) goto lab0; + z->bra = z->c; /* ], line 321 */ + { int ret = slice_from_s(z, 2, s_50); /* <-, line 322 */ + if (ret < 0) return ret; + } + z->c = z->lb; + lab0: + z->c = c1; + } + { int c2 = z->c; /* do, line 329 */ + while(1) { /* repeat, line 329 */ + int c3 = z->c; + { int c4 = z->c; /* or, line 338 */ + z->bra = z->c; /* [, line 332 */ + if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((124 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab4; /* substring, line 332 */ + among_var = find_among(z, a_2, 5); + if (!(among_var)) goto lab4; + z->ket = z->c; /* ], line 332 */ + switch (among_var) { /* among, line 332 */ + case 1: + { int ret = slice_from_s(z, 2, s_51); /* <-, line 333 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 2, s_52); /* <-, line 334 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 2, s_53); /* <-, line 335 */ + if (ret < 0) return ret; + } + break; + } + goto lab3; + lab4: + z->c = c4; + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab2; + z->c = ret; /* next, line 339 */ + } + } + lab3: + continue; + lab2: + z->c = c3; + break; + } + z->c = c2; + } + return 1; +} + +static int r_Checks1(struct SN_env * z) { /* forwardmode */ + int among_var; + z->bra = z->c; /* [, line 345 */ + if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0; /* substring, line 345 */ + among_var = find_among(z, a_3, 4); + if (!(among_var)) return 0; + z->ket = z->c; /* ], line 345 */ + switch (among_var) { /* among, line 345 */ + case 1: + if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 346 */ + z->B[0] = 1; /* set is_noun, line 346 */ + z->B[1] = 0; /* unset is_verb, line 346 */ + z->B[2] = 1; /* set is_defined, line 346 */ + break; + case 2: + if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 347 */ + z->B[0] = 1; /* set is_noun, line 347 */ + z->B[1] = 0; /* unset is_verb, line 347 */ + z->B[2] = 1; /* set is_defined, line 347 */ + break; + } + return 1; +} + +static int r_Prefix_Step1(struct SN_env * z) { /* forwardmode */ + int among_var; + z->bra = z->c; /* [, line 354 */ + if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 5 || !((188 >> (z->p[z->c + 3] & 0x1f)) & 1)) return 0; /* substring, line 354 */ + among_var = find_among(z, a_4, 5); + if (!(among_var)) return 0; + z->ket = z->c; /* ], line 354 */ + switch (among_var) { /* among, line 354 */ + case 1: + if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 355 */ + { int ret = slice_from_s(z, 2, s_54); /* <-, line 355 */ + if (ret < 0) return ret; + } + break; + case 2: + if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 356 */ + { int ret = slice_from_s(z, 2, s_55); /* <-, line 356 */ + if (ret < 0) return ret; + } + break; + case 3: + if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 358 */ + { int ret = slice_from_s(z, 2, s_56); /* <-, line 358 */ + if (ret < 0) return ret; + } + break; + case 4: + if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 359 */ + { int ret = slice_from_s(z, 2, s_57); /* <-, line 359 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Prefix_Step2(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* not, line 365 */ + if (!(eq_s(z, 4, s_58))) goto lab0; /* literal, line 365 */ + return 0; + lab0: + z->c = c1; + } + { int c2 = z->c; /* not, line 366 */ + if (!(eq_s(z, 4, s_59))) goto lab1; /* literal, line 366 */ + return 0; + lab1: + z->c = c2; + } + z->bra = z->c; /* [, line 367 */ + if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0; /* substring, line 367 */ + if (!(find_among(z, a_5, 2))) return 0; + z->ket = z->c; /* ], line 367 */ + if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 368 */ + { int ret = slice_del(z); /* delete, line 368 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Prefix_Step3a_Noun(struct SN_env * z) { /* forwardmode */ + int among_var; + z->bra = z->c; /* [, line 374 */ + if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0; /* substring, line 374 */ + among_var = find_among(z, a_6, 4); + if (!(among_var)) return 0; + z->ket = z->c; /* ], line 374 */ + switch (among_var) { /* among, line 374 */ + case 1: + if (!(len_utf8(z->p) > 5)) return 0; /* $(<integer expression> > <integer expression>), line 375 */ + { int ret = slice_del(z); /* delete, line 375 */ + if (ret < 0) return ret; + } + break; + case 2: + if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 376 */ + { int ret = slice_del(z); /* delete, line 376 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Prefix_Step3b_Noun(struct SN_env * z) { /* forwardmode */ + int among_var; + { int c1 = z->c; /* not, line 381 */ + if (!(eq_s(z, 4, s_60))) goto lab0; /* literal, line 381 */ + return 0; + lab0: + z->c = c1; + } + z->bra = z->c; /* [, line 382 */ + if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0; /* substring, line 382 */ + among_var = find_among(z, a_7, 3); + if (!(among_var)) return 0; + z->ket = z->c; /* ], line 382 */ + switch (among_var) { /* among, line 382 */ + case 1: + if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 383 */ + { int ret = slice_del(z); /* delete, line 383 */ + if (ret < 0) return ret; + } + break; + case 2: + if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 385 */ + { int ret = slice_from_s(z, 2, s_61); /* <-, line 385 */ + if (ret < 0) return ret; + } + break; + case 3: + if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 386 */ + { int ret = slice_from_s(z, 2, s_62); /* <-, line 386 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Prefix_Step3_Verb(struct SN_env * z) { /* forwardmode */ + int among_var; + z->bra = z->c; /* [, line 392 */ + among_var = find_among(z, a_8, 4); /* substring, line 392 */ + if (!(among_var)) return 0; + z->ket = z->c; /* ], line 392 */ + switch (among_var) { /* among, line 392 */ + case 1: + if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 394 */ + { int ret = slice_from_s(z, 2, s_63); /* <-, line 394 */ + if (ret < 0) return ret; + } + break; + case 2: + if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 395 */ + { int ret = slice_from_s(z, 2, s_64); /* <-, line 395 */ + if (ret < 0) return ret; + } + break; + case 3: + if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 396 */ + { int ret = slice_from_s(z, 2, s_65); /* <-, line 396 */ + if (ret < 0) return ret; + } + break; + case 4: + if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 397 */ + { int ret = slice_from_s(z, 2, s_66); /* <-, line 397 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Prefix_Step4_Verb(struct SN_env * z) { /* forwardmode */ + z->bra = z->c; /* [, line 402 */ + if (z->c + 5 >= z->l || z->p[z->c + 5] != 170) return 0; /* substring, line 402 */ + if (!(find_among(z, a_9, 3))) return 0; + z->ket = z->c; /* ], line 402 */ + if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 403 */ + z->B[1] = 1; /* set is_verb, line 403 */ + z->B[0] = 0; /* unset is_noun, line 403 */ + { int ret = slice_from_s(z, 6, s_67); /* <-, line 403 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Suffix_Noun_Step1a(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 411 */ + among_var = find_among_b(z, a_10, 10); /* substring, line 411 */ + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 411 */ + switch (among_var) { /* among, line 411 */ + case 1: + if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 412 */ + { int ret = slice_del(z); /* delete, line 412 */ + if (ret < 0) return ret; + } + break; + case 2: + if (!(len_utf8(z->p) >= 5)) return 0; /* $(<integer expression> >= <integer expression>), line 413 */ + { int ret = slice_del(z); /* delete, line 413 */ + if (ret < 0) return ret; + } + break; + case 3: + if (!(len_utf8(z->p) >= 6)) return 0; /* $(<integer expression> >= <integer expression>), line 414 */ + { int ret = slice_del(z); /* delete, line 414 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Suffix_Noun_Step1b(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 418 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 134) return 0; /* substring, line 418 */ + if (!(find_among_b(z, a_11, 1))) return 0; + z->bra = z->c; /* ], line 418 */ + if (!(len_utf8(z->p) > 5)) return 0; /* $(<integer expression> > <integer expression>), line 419 */ + { int ret = slice_del(z); /* delete, line 419 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Suffix_Noun_Step2a(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 424 */ + if (!(find_among_b(z, a_12, 3))) return 0; /* substring, line 424 */ + z->bra = z->c; /* ], line 424 */ + if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 425 */ + { int ret = slice_del(z); /* delete, line 425 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Suffix_Noun_Step2b(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 430 */ + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 170) return 0; /* substring, line 430 */ + if (!(find_among_b(z, a_13, 1))) return 0; + z->bra = z->c; /* ], line 430 */ + if (!(len_utf8(z->p) >= 5)) return 0; /* $(<integer expression> >= <integer expression>), line 431 */ + { int ret = slice_del(z); /* delete, line 431 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Suffix_Noun_Step2c1(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 436 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 170) return 0; /* substring, line 436 */ + if (!(find_among_b(z, a_14, 1))) return 0; + z->bra = z->c; /* ], line 436 */ + if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 437 */ + { int ret = slice_del(z); /* delete, line 437 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Suffix_Noun_Step2c2(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 441 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 169) return 0; /* substring, line 441 */ + if (!(find_among_b(z, a_15, 1))) return 0; + z->bra = z->c; /* ], line 441 */ + if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 442 */ + { int ret = slice_del(z); /* delete, line 442 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Suffix_Noun_Step3(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 446 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 138) return 0; /* substring, line 446 */ + if (!(find_among_b(z, a_16, 1))) return 0; + z->bra = z->c; /* ], line 446 */ + if (!(len_utf8(z->p) >= 3)) return 0; /* $(<integer expression> >= <integer expression>), line 447 */ + { int ret = slice_del(z); /* delete, line 447 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Suffix_Verb_Step1(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 452 */ + among_var = find_among_b(z, a_17, 12); /* substring, line 452 */ + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 452 */ + switch (among_var) { /* among, line 452 */ + case 1: + if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 453 */ + { int ret = slice_del(z); /* delete, line 453 */ + if (ret < 0) return ret; + } + break; + case 2: + if (!(len_utf8(z->p) >= 5)) return 0; /* $(<integer expression> >= <integer expression>), line 454 */ + { int ret = slice_del(z); /* delete, line 454 */ + if (ret < 0) return ret; + } + break; + case 3: + if (!(len_utf8(z->p) >= 6)) return 0; /* $(<integer expression> >= <integer expression>), line 455 */ + { int ret = slice_del(z); /* delete, line 455 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Suffix_Verb_Step2a(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 459 */ + among_var = find_among_b(z, a_18, 11); /* substring, line 459 */ + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 459 */ + switch (among_var) { /* among, line 459 */ + case 1: + if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 460 */ + { int ret = slice_del(z); /* delete, line 460 */ + if (ret < 0) return ret; + } + break; + case 2: + if (!(len_utf8(z->p) >= 5)) return 0; /* $(<integer expression> >= <integer expression>), line 462 */ + { int ret = slice_del(z); /* delete, line 462 */ + if (ret < 0) return ret; + } + break; + case 3: + if (!(len_utf8(z->p) > 5)) return 0; /* $(<integer expression> > <integer expression>), line 463 */ + { int ret = slice_del(z); /* delete, line 463 */ + if (ret < 0) return ret; + } + break; + case 4: + if (!(len_utf8(z->p) >= 6)) return 0; /* $(<integer expression> >= <integer expression>), line 464 */ + { int ret = slice_del(z); /* delete, line 464 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Suffix_Verb_Step2b(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 469 */ + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 133 && z->p[z->c - 1] != 167)) return 0; /* substring, line 469 */ + if (!(find_among_b(z, a_19, 2))) return 0; + z->bra = z->c; /* ], line 469 */ + if (!(len_utf8(z->p) >= 5)) return 0; /* $(<integer expression> >= <integer expression>), line 470 */ + { int ret = slice_del(z); /* delete, line 470 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Suffix_Verb_Step2c(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 476 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 136) return 0; /* substring, line 476 */ + among_var = find_among_b(z, a_20, 2); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 476 */ + switch (among_var) { /* among, line 476 */ + case 1: + if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 477 */ + { int ret = slice_del(z); /* delete, line 477 */ + if (ret < 0) return ret; + } + break; + case 2: + if (!(len_utf8(z->p) >= 6)) return 0; /* $(<integer expression> >= <integer expression>), line 478 */ + { int ret = slice_del(z); /* delete, line 478 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Suffix_All_alef_maqsura(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 483 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 137) return 0; /* substring, line 483 */ + if (!(find_among_b(z, a_21, 1))) return 0; + z->bra = z->c; /* ], line 483 */ + { int ret = slice_from_s(z, 2, s_68); /* <-, line 484 */ + if (ret < 0) return ret; + } + return 1; +} + +extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + z->B[0] = 1; /* set is_noun, line 493 */ + z->B[1] = 1; /* set is_verb, line 494 */ + z->B[2] = 0; /* unset is_defined, line 495 */ + { int c1 = z->c; /* do, line 498 */ + { int ret = r_Checks1(z); /* call Checks1, line 498 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + /* do, line 501 */ + { int ret = r_Normalize_pre(z); /* call Normalize_pre, line 501 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } +lab1: + z->lb = z->c; z->c = z->l; /* backwards, line 504 */ + + { int m2 = z->l - z->c; (void)m2; /* do, line 506 */ + { int m3 = z->l - z->c; (void)m3; /* or, line 520 */ + if (!(z->B[1])) goto lab4; /* Boolean test is_verb, line 509 */ + { int m4 = z->l - z->c; (void)m4; /* or, line 515 */ + { int i = 1; + while(1) { /* atleast, line 512 */ + int m5 = z->l - z->c; (void)m5; + { int ret = r_Suffix_Verb_Step1(z); /* call Suffix_Verb_Step1, line 512 */ + if (ret == 0) goto lab7; + if (ret < 0) return ret; + } + i--; + continue; + lab7: + z->c = z->l - m5; + break; + } + if (i > 0) goto lab6; + } + { int m6 = z->l - z->c; (void)m6; /* or, line 513 */ + { int ret = r_Suffix_Verb_Step2a(z); /* call Suffix_Verb_Step2a, line 513 */ + if (ret == 0) goto lab9; + if (ret < 0) return ret; + } + goto lab8; + lab9: + z->c = z->l - m6; + { int ret = r_Suffix_Verb_Step2c(z); /* call Suffix_Verb_Step2c, line 513 */ + if (ret == 0) goto lab10; + if (ret < 0) return ret; + } + goto lab8; + lab10: + z->c = z->l - m6; + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) goto lab6; + z->c = ret; /* next, line 513 */ + } + } + lab8: + goto lab5; + lab6: + z->c = z->l - m4; + { int ret = r_Suffix_Verb_Step2b(z); /* call Suffix_Verb_Step2b, line 515 */ + if (ret == 0) goto lab11; + if (ret < 0) return ret; + } + goto lab5; + lab11: + z->c = z->l - m4; + { int ret = r_Suffix_Verb_Step2a(z); /* call Suffix_Verb_Step2a, line 516 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + } + lab5: + goto lab3; + lab4: + z->c = z->l - m3; + if (!(z->B[0])) goto lab12; /* Boolean test is_noun, line 521 */ + { int m7 = z->l - z->c; (void)m7; /* try, line 524 */ + { int m8 = z->l - z->c; (void)m8; /* or, line 526 */ + { int ret = r_Suffix_Noun_Step2c2(z); /* call Suffix_Noun_Step2c2, line 525 */ + if (ret == 0) goto lab15; + if (ret < 0) return ret; + } + goto lab14; + lab15: + z->c = z->l - m8; + /* not, line 526 */ + if (!(z->B[2])) goto lab17; /* Boolean test is_defined, line 526 */ + goto lab16; + lab17: + { int ret = r_Suffix_Noun_Step1a(z); /* call Suffix_Noun_Step1a, line 526 */ + if (ret == 0) goto lab16; + if (ret < 0) return ret; + } + { int m9 = z->l - z->c; (void)m9; /* or, line 528 */ + { int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 527 */ + if (ret == 0) goto lab19; + if (ret < 0) return ret; + } + goto lab18; + lab19: + z->c = z->l - m9; + { int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 528 */ + if (ret == 0) goto lab20; + if (ret < 0) return ret; + } + goto lab18; + lab20: + z->c = z->l - m9; + { int ret = r_Suffix_Noun_Step2c1(z); /* call Suffix_Noun_Step2c1, line 529 */ + if (ret == 0) goto lab21; + if (ret < 0) return ret; + } + goto lab18; + lab21: + z->c = z->l - m9; + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) goto lab16; + z->c = ret; /* next, line 530 */ + } + } + lab18: + goto lab14; + lab16: + z->c = z->l - m8; + { int ret = r_Suffix_Noun_Step1b(z); /* call Suffix_Noun_Step1b, line 531 */ + if (ret == 0) goto lab22; + if (ret < 0) return ret; + } + { int m10 = z->l - z->c; (void)m10; /* or, line 533 */ + { int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 532 */ + if (ret == 0) goto lab24; + if (ret < 0) return ret; + } + goto lab23; + lab24: + z->c = z->l - m10; + { int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 533 */ + if (ret == 0) goto lab25; + if (ret < 0) return ret; + } + goto lab23; + lab25: + z->c = z->l - m10; + { int ret = r_Suffix_Noun_Step2c1(z); /* call Suffix_Noun_Step2c1, line 534 */ + if (ret == 0) goto lab22; + if (ret < 0) return ret; + } + } + lab23: + goto lab14; + lab22: + z->c = z->l - m8; + /* not, line 535 */ + if (!(z->B[2])) goto lab27; /* Boolean test is_defined, line 535 */ + goto lab26; + lab27: + { int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 535 */ + if (ret == 0) goto lab26; + if (ret < 0) return ret; + } + goto lab14; + lab26: + z->c = z->l - m8; + { int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 536 */ + if (ret == 0) { z->c = z->l - m7; goto lab13; } + if (ret < 0) return ret; + } + } + lab14: + lab13: + ; + } + { int ret = r_Suffix_Noun_Step3(z); /* call Suffix_Noun_Step3, line 538 */ + if (ret == 0) goto lab12; + if (ret < 0) return ret; + } + goto lab3; + lab12: + z->c = z->l - m3; + { int ret = r_Suffix_All_alef_maqsura(z); /* call Suffix_All_alef_maqsura, line 544 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + } + lab3: + lab2: + z->c = z->l - m2; + } + z->c = z->lb; + { int c11 = z->c; /* do, line 549 */ + { int c12 = z->c; /* try, line 550 */ + { int ret = r_Prefix_Step1(z); /* call Prefix_Step1, line 550 */ + if (ret == 0) { z->c = c12; goto lab29; } + if (ret < 0) return ret; + } + lab29: + ; + } + { int c13 = z->c; /* try, line 551 */ + { int ret = r_Prefix_Step2(z); /* call Prefix_Step2, line 551 */ + if (ret == 0) { z->c = c13; goto lab30; } + if (ret < 0) return ret; + } + lab30: + ; + } + { int c14 = z->c; /* or, line 553 */ + { int ret = r_Prefix_Step3a_Noun(z); /* call Prefix_Step3a_Noun, line 552 */ + if (ret == 0) goto lab32; + if (ret < 0) return ret; + } + goto lab31; + lab32: + z->c = c14; + if (!(z->B[0])) goto lab33; /* Boolean test is_noun, line 553 */ + { int ret = r_Prefix_Step3b_Noun(z); /* call Prefix_Step3b_Noun, line 553 */ + if (ret == 0) goto lab33; + if (ret < 0) return ret; + } + goto lab31; + lab33: + z->c = c14; + if (!(z->B[1])) goto lab28; /* Boolean test is_verb, line 554 */ + { int c15 = z->c; /* try, line 554 */ + { int ret = r_Prefix_Step3_Verb(z); /* call Prefix_Step3_Verb, line 554 */ + if (ret == 0) { z->c = c15; goto lab34; } + if (ret < 0) return ret; + } + lab34: + ; + } + { int ret = r_Prefix_Step4_Verb(z); /* call Prefix_Step4_Verb, line 554 */ + if (ret == 0) goto lab28; + if (ret < 0) return ret; + } + } + lab31: + lab28: + z->c = c11; + } + /* do, line 559 */ + { int ret = r_Normalize_post(z); /* call Normalize_post, line 559 */ + if (ret == 0) goto lab35; + if (ret < 0) return ret; + } +lab35: + return 1; +} + +extern struct SN_env * arabic_UTF_8_create_env(void) { return SN_create_env(0, 0, 3); } + +extern void arabic_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_danish.c b/src/backend/snowball/libstemmer/stem_UTF_8_danish.c new file mode 100644 index 0000000..901491c --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_danish.c @@ -0,0 +1,331 @@ +/* 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 danish_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_undouble(struct SN_env * z); +static int r_other_suffix(struct SN_env * z); +static int r_consonant_pair(struct SN_env * z); +static int r_main_suffix(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * danish_UTF_8_create_env(void); +extern void danish_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[3] = { 'h', 'e', 'd' }; +static const symbol s_0_1[5] = { 'e', 't', 'h', 'e', 'd' }; +static const symbol s_0_2[4] = { 'e', 'r', 'e', 'd' }; +static const symbol s_0_3[1] = { 'e' }; +static const symbol s_0_4[5] = { 'e', 'r', 'e', 'd', 'e' }; +static const symbol s_0_5[4] = { 'e', 'n', 'd', 'e' }; +static const symbol s_0_6[6] = { 'e', 'r', 'e', 'n', 'd', 'e' }; +static const symbol s_0_7[3] = { 'e', 'n', 'e' }; +static const symbol s_0_8[4] = { 'e', 'r', 'n', 'e' }; +static const symbol s_0_9[3] = { 'e', 'r', 'e' }; +static const symbol s_0_10[2] = { 'e', 'n' }; +static const symbol s_0_11[5] = { 'h', 'e', 'd', 'e', 'n' }; +static const symbol s_0_12[4] = { 'e', 'r', 'e', 'n' }; +static const symbol s_0_13[2] = { 'e', 'r' }; +static const symbol s_0_14[5] = { 'h', 'e', 'd', 'e', 'r' }; +static const symbol s_0_15[4] = { 'e', 'r', 'e', 'r' }; +static const symbol s_0_16[1] = { 's' }; +static const symbol s_0_17[4] = { 'h', 'e', 'd', 's' }; +static const symbol s_0_18[2] = { 'e', 's' }; +static const symbol s_0_19[5] = { 'e', 'n', 'd', 'e', 's' }; +static const symbol s_0_20[7] = { 'e', 'r', 'e', 'n', 'd', 'e', 's' }; +static const symbol s_0_21[4] = { 'e', 'n', 'e', 's' }; +static const symbol s_0_22[5] = { 'e', 'r', 'n', 'e', 's' }; +static const symbol s_0_23[4] = { 'e', 'r', 'e', 's' }; +static const symbol s_0_24[3] = { 'e', 'n', 's' }; +static const symbol s_0_25[6] = { 'h', 'e', 'd', 'e', 'n', 's' }; +static const symbol s_0_26[5] = { 'e', 'r', 'e', 'n', 's' }; +static const symbol s_0_27[3] = { 'e', 'r', 's' }; +static const symbol s_0_28[3] = { 'e', 't', 's' }; +static const symbol s_0_29[5] = { 'e', 'r', 'e', 't', 's' }; +static const symbol s_0_30[2] = { 'e', 't' }; +static const symbol s_0_31[4] = { 'e', 'r', 'e', 't' }; + +static const struct among a_0[32] = +{ +/* 0 */ { 3, s_0_0, -1, 1, 0}, +/* 1 */ { 5, s_0_1, 0, 1, 0}, +/* 2 */ { 4, s_0_2, -1, 1, 0}, +/* 3 */ { 1, s_0_3, -1, 1, 0}, +/* 4 */ { 5, s_0_4, 3, 1, 0}, +/* 5 */ { 4, s_0_5, 3, 1, 0}, +/* 6 */ { 6, s_0_6, 5, 1, 0}, +/* 7 */ { 3, s_0_7, 3, 1, 0}, +/* 8 */ { 4, s_0_8, 3, 1, 0}, +/* 9 */ { 3, s_0_9, 3, 1, 0}, +/* 10 */ { 2, s_0_10, -1, 1, 0}, +/* 11 */ { 5, s_0_11, 10, 1, 0}, +/* 12 */ { 4, s_0_12, 10, 1, 0}, +/* 13 */ { 2, s_0_13, -1, 1, 0}, +/* 14 */ { 5, s_0_14, 13, 1, 0}, +/* 15 */ { 4, s_0_15, 13, 1, 0}, +/* 16 */ { 1, s_0_16, -1, 2, 0}, +/* 17 */ { 4, s_0_17, 16, 1, 0}, +/* 18 */ { 2, s_0_18, 16, 1, 0}, +/* 19 */ { 5, s_0_19, 18, 1, 0}, +/* 20 */ { 7, s_0_20, 19, 1, 0}, +/* 21 */ { 4, s_0_21, 18, 1, 0}, +/* 22 */ { 5, s_0_22, 18, 1, 0}, +/* 23 */ { 4, s_0_23, 18, 1, 0}, +/* 24 */ { 3, s_0_24, 16, 1, 0}, +/* 25 */ { 6, s_0_25, 24, 1, 0}, +/* 26 */ { 5, s_0_26, 24, 1, 0}, +/* 27 */ { 3, s_0_27, 16, 1, 0}, +/* 28 */ { 3, s_0_28, 16, 1, 0}, +/* 29 */ { 5, s_0_29, 28, 1, 0}, +/* 30 */ { 2, s_0_30, -1, 1, 0}, +/* 31 */ { 4, s_0_31, 30, 1, 0} +}; + +static const symbol s_1_0[2] = { 'g', 'd' }; +static const symbol s_1_1[2] = { 'd', 't' }; +static const symbol s_1_2[2] = { 'g', 't' }; +static const symbol s_1_3[2] = { 'k', 't' }; + +static const struct among a_1[4] = +{ +/* 0 */ { 2, s_1_0, -1, -1, 0}, +/* 1 */ { 2, s_1_1, -1, -1, 0}, +/* 2 */ { 2, s_1_2, -1, -1, 0}, +/* 3 */ { 2, s_1_3, -1, -1, 0} +}; + +static const symbol s_2_0[2] = { 'i', 'g' }; +static const symbol s_2_1[3] = { 'l', 'i', 'g' }; +static const symbol s_2_2[4] = { 'e', 'l', 'i', 'g' }; +static const symbol s_2_3[3] = { 'e', 'l', 's' }; +static const symbol s_2_4[5] = { 'l', 0xC3, 0xB8, 's', 't' }; + +static const struct among a_2[5] = +{ +/* 0 */ { 2, s_2_0, -1, 1, 0}, +/* 1 */ { 3, s_2_1, 0, 1, 0}, +/* 2 */ { 4, s_2_2, 1, 1, 0}, +/* 3 */ { 3, s_2_3, -1, 1, 0}, +/* 4 */ { 5, s_2_4, -1, 2, 0} +}; + +static const unsigned char g_c[] = { 119, 223, 119, 1 }; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 }; + +static const unsigned char g_s_ending[] = { 239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 }; + +static const symbol s_0[] = { 's', 't' }; +static const symbol s_1[] = { 'i', 'g' }; +static const symbol s_2[] = { 'l', 0xC3, 0xB8, 's' }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */ + { int c_test1 = z->c; /* test, line 35 */ + { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 35 */ + if (ret < 0) return 0; + z->c = ret; + } + z->I[1] = z->c; /* setmark x, line 35 */ + z->c = c_test1; + } + if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 36 */ + { /* gopast */ /* non v, line 36 */ + int ret = in_grouping_U(z, g_v, 97, 248, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 36 */ + /* try, line 37 */ + if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 37 */ + z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 37 */ +lab0: + return 1; +} + +static int r_main_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 43 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 43 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 43 */ + among_var = find_among_b(z, a_0, 32); + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 43 */ + z->lb = mlimit1; + } + switch (among_var) { /* among, line 44 */ + case 1: + { int ret = slice_del(z); /* delete, line 50 */ + if (ret < 0) return ret; + } + break; + case 2: + if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 52 */ + { int ret = slice_del(z); /* delete, line 52 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ + { int m_test1 = z->l - z->c; /* test, line 57 */ + + { int mlimit2; /* setlimit, line 58 */ + if (z->c < z->I[0]) return 0; + mlimit2 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 58 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 58 */ + if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; } + z->bra = z->c; /* ], line 58 */ + z->lb = mlimit2; + } + z->c = z->l - m_test1; + } + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 64 */ + } + z->bra = z->c; /* ], line 64 */ + { int ret = slice_del(z); /* delete, line 64 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_other_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + { int m1 = z->l - z->c; (void)m1; /* do, line 68 */ + z->ket = z->c; /* [, line 68 */ + if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 68 */ + z->bra = z->c; /* ], line 68 */ + if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 68 */ + { int ret = slice_del(z); /* delete, line 68 */ + if (ret < 0) return ret; + } + lab0: + z->c = z->l - m1; + } + + { int mlimit2; /* setlimit, line 69 */ + if (z->c < z->I[0]) return 0; + mlimit2 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 69 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 69 */ + among_var = find_among_b(z, a_2, 5); + if (!(among_var)) { z->lb = mlimit2; return 0; } + z->bra = z->c; /* ], line 69 */ + z->lb = mlimit2; + } + switch (among_var) { /* among, line 70 */ + case 1: + { int ret = slice_del(z); /* delete, line 72 */ + if (ret < 0) return ret; + } + { int m3 = z->l - z->c; (void)m3; /* do, line 72 */ + { int ret = r_consonant_pair(z); /* call consonant_pair, line 72 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + lab1: + z->c = z->l - m3; + } + break; + case 2: + { int ret = slice_from_s(z, 4, s_2); /* <-, line 74 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_undouble(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 78 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 78 */ + if (in_grouping_b_U(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } /* grouping c, line 78 */ + z->bra = z->c; /* ], line 78 */ + z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 78 */ + if (z->S[0] == 0) return -1; /* -> ch, line 78 */ + z->lb = mlimit1; + } + if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 79 */ + { int ret = slice_del(z); /* delete, line 80 */ + if (ret < 0) return ret; + } + return 1; +} + +extern int danish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 86 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 86 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + z->lb = z->c; z->c = z->l; /* backwards, line 87 */ + + { int m2 = z->l - z->c; (void)m2; /* do, line 88 */ + { int ret = r_main_suffix(z); /* call main_suffix, line 88 */ + 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 89 */ + { int ret = r_consonant_pair(z); /* call consonant_pair, line 89 */ + 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 90 */ + { int ret = r_other_suffix(z); /* call other_suffix, line 90 */ + 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 91 */ + { int ret = r_undouble(z); /* call undouble, line 91 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + lab4: + z->c = z->l - m5; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * danish_UTF_8_create_env(void) { return SN_create_env(1, 2, 0); } + +extern void danish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c b/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c new file mode 100644 index 0000000..0a61174 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c @@ -0,0 +1,624 @@ +/* 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 dutch_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_standard_suffix(struct SN_env * z); +static int r_undouble(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_en_ending(struct SN_env * z); +static int r_e_ending(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * dutch_UTF_8_create_env(void); +extern void dutch_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[2] = { 0xC3, 0xA1 }; +static const symbol s_0_2[2] = { 0xC3, 0xA4 }; +static const symbol s_0_3[2] = { 0xC3, 0xA9 }; +static const symbol s_0_4[2] = { 0xC3, 0xAB }; +static const symbol s_0_5[2] = { 0xC3, 0xAD }; +static const symbol s_0_6[2] = { 0xC3, 0xAF }; +static const symbol s_0_7[2] = { 0xC3, 0xB3 }; +static const symbol s_0_8[2] = { 0xC3, 0xB6 }; +static const symbol s_0_9[2] = { 0xC3, 0xBA }; +static const symbol s_0_10[2] = { 0xC3, 0xBC }; + +static const struct among a_0[11] = +{ +/* 0 */ { 0, 0, -1, 6, 0}, +/* 1 */ { 2, s_0_1, 0, 1, 0}, +/* 2 */ { 2, s_0_2, 0, 1, 0}, +/* 3 */ { 2, s_0_3, 0, 2, 0}, +/* 4 */ { 2, s_0_4, 0, 2, 0}, +/* 5 */ { 2, s_0_5, 0, 3, 0}, +/* 6 */ { 2, s_0_6, 0, 3, 0}, +/* 7 */ { 2, s_0_7, 0, 4, 0}, +/* 8 */ { 2, s_0_8, 0, 4, 0}, +/* 9 */ { 2, s_0_9, 0, 5, 0}, +/* 10 */ { 2, s_0_10, 0, 5, 0} +}; + +static const symbol s_1_1[1] = { 'I' }; +static const symbol s_1_2[1] = { 'Y' }; + +static const struct among a_1[3] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 1, s_1_1, 0, 2, 0}, +/* 2 */ { 1, s_1_2, 0, 1, 0} +}; + +static const symbol s_2_0[2] = { 'd', 'd' }; +static const symbol s_2_1[2] = { 'k', 'k' }; +static const symbol s_2_2[2] = { 't', 't' }; + +static const struct among a_2[3] = +{ +/* 0 */ { 2, s_2_0, -1, -1, 0}, +/* 1 */ { 2, s_2_1, -1, -1, 0}, +/* 2 */ { 2, s_2_2, -1, -1, 0} +}; + +static const symbol s_3_0[3] = { 'e', 'n', 'e' }; +static const symbol s_3_1[2] = { 's', 'e' }; +static const symbol s_3_2[2] = { 'e', 'n' }; +static const symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' }; +static const symbol s_3_4[1] = { 's' }; + +static const struct among a_3[5] = +{ +/* 0 */ { 3, s_3_0, -1, 2, 0}, +/* 1 */ { 2, s_3_1, -1, 3, 0}, +/* 2 */ { 2, s_3_2, -1, 2, 0}, +/* 3 */ { 5, s_3_3, 2, 1, 0}, +/* 4 */ { 1, s_3_4, -1, 3, 0} +}; + +static const symbol s_4_0[3] = { 'e', 'n', 'd' }; +static const symbol s_4_1[2] = { 'i', 'g' }; +static const symbol s_4_2[3] = { 'i', 'n', 'g' }; +static const symbol s_4_3[4] = { 'l', 'i', 'j', 'k' }; +static const symbol s_4_4[4] = { 'b', 'a', 'a', 'r' }; +static const symbol s_4_5[3] = { 'b', 'a', 'r' }; + +static const struct among a_4[6] = +{ +/* 0 */ { 3, s_4_0, -1, 1, 0}, +/* 1 */ { 2, s_4_1, -1, 2, 0}, +/* 2 */ { 3, s_4_2, -1, 1, 0}, +/* 3 */ { 4, s_4_3, -1, 3, 0}, +/* 4 */ { 4, s_4_4, -1, 4, 0}, +/* 5 */ { 3, s_4_5, -1, 5, 0} +}; + +static const symbol s_5_0[2] = { 'a', 'a' }; +static const symbol s_5_1[2] = { 'e', 'e' }; +static const symbol s_5_2[2] = { 'o', 'o' }; +static const symbol s_5_3[2] = { 'u', 'u' }; + +static const struct among a_5[4] = +{ +/* 0 */ { 2, s_5_0, -1, -1, 0}, +/* 1 */ { 2, s_5_1, -1, -1, 0}, +/* 2 */ { 2, s_5_2, -1, -1, 0}, +/* 3 */ { 2, s_5_3, -1, -1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + +static const unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + +static const unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + +static const symbol s_0[] = { 'a' }; +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[] = { '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) { /* forwardmode */ + int among_var; + { int c_test1 = z->c; /* test, line 42 */ + while(1) { /* repeat, line 42 */ + int c2 = z->c; + z->bra = z->c; /* [, line 43 */ + if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */ + among_var = find_among(z, a_0, 11); + if (!(among_var)) goto lab0; + z->ket = z->c; /* ], line 43 */ + switch (among_var) { /* among, line 43 */ + case 1: + { int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */ + 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 54 */ + } + break; + } + continue; + lab0: + z->c = c2; + break; + } + z->c = c_test1; + } + { int c3 = z->c; /* try, line 57 */ + z->bra = z->c; /* [, line 57 */ + if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */ + z->c++; + z->ket = z->c; /* ], 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 c4 = z->c; + while(1) { /* goto, line 58 */ + int c5 = z->c; + if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */ + z->bra = z->c; /* [, line 59 */ + { int c6 = z->c; /* or, line 59 */ + if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */ + z->c++; + z->ket = z->c; /* ], line 59 */ + if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */ + { int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */ + if (ret < 0) return ret; + } + goto lab4; + lab5: + z->c = c6; + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */ + z->c++; + z->ket = z->c; /* ], line 60 */ + { int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */ + if (ret < 0) return ret; + } + } + lab4: + z->c = c5; + break; + lab3: + 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 */ + } + } + continue; + lab2: + z->c = c4; + break; + } + return 1; +} + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 66 */ + z->I[1] = z->l; /* $p2 = <integer expression>, line 67 */ + { /* gopast */ /* grouping v, line 69 */ + int ret = out_grouping_U(z, g_v, 97, 232, 1); + if (ret < 0) return 0; + z->c += ret; + } + { /* gopast */ /* non v, line 69 */ + int ret = in_grouping_U(z, g_v, 97, 232, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 69 */ + /* try, line 70 */ + if (!(z->I[0] < 3)) goto lab0; /* $(<integer expression> < <integer expression>), line 70 */ + z->I[0] = 3; /* $p1 = <integer expression>, line 70 */ +lab0: + { /* gopast */ /* grouping v, line 71 */ + int ret = out_grouping_U(z, g_v, 97, 232, 1); + if (ret < 0) return 0; + z->c += ret; + } + { /* gopast */ /* non v, line 71 */ + int ret = in_grouping_U(z, g_v, 97, 232, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[1] = z->c; /* setmark p2, line 71 */ + return 1; +} + +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 /* 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) { /* among, line 77 */ + case 1: + { 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_9); /* <-, line 79 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 80 */ + } + break; + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +static int r_R1(struct SN_env * z) { /* backwardmode */ + if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 87 */ + return 1; +} + +static int r_R2(struct SN_env * z) { /* backwardmode */ + if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 88 */ + return 1; +} + +static int r_undouble(struct SN_env * z) { /* backwardmode */ + { int m_test1 = z->l - z->c; /* test, line 91 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */ + 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); + if (ret < 0) return 0; + z->c = ret; /* next, line 91 */ + } + z->bra = z->c; /* ], line 91 */ + { int ret = slice_del(z); /* delete, line 91 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_e_ending(struct SN_env * z) { /* backwardmode */ + z->B[0] = 0; /* unset e_found, line 95 */ + z->ket = z->c; /* [, line 96 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */ + z->c--; + z->bra = z->c; /* ], line 96 */ + { int ret = r_R1(z); /* call R1, line 96 */ + if (ret <= 0) return ret; + } + { int m_test1 = z->l - z->c; /* test, line 96 */ + if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */ + 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); /* call undouble, line 98 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_en_ending(struct SN_env * z) { /* backwardmode */ + { int ret = r_R1(z); /* call R1, line 102 */ + if (ret <= 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* and, line 102 */ + if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */ + z->c = z->l - m1; + { int m2 = z->l - z->c; (void)m2; /* not, line 102 */ + if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */ + return 0; + lab0: + z->c = z->l - m2; + } + } + { int ret = slice_del(z); /* delete, line 102 */ + 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) { /* 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; /* 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) { /* among, line 108 */ + case 1: + { 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_11); /* <-, line 110 */ + if (ret < 0) return ret; + } + break; + case 2: + { 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); /* 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; /* non v_j, line 116 */ + { int ret = slice_del(z); /* delete, line 116 */ + if (ret < 0) return ret; + } + break; + } + lab0: + z->c = z->l - m1; + } + { int m2 = z->l - z->c; (void)m2; /* do, line 120 */ + { int ret = r_e_ending(z); /* call e_ending, line 120 */ + 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 122 */ + z->ket = z->c; /* [, line 122 */ + if (!(eq_s_b(z, 4, s_12))) goto lab2; /* literal, line 122 */ + z->bra = z->c; /* ], 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 (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; + } + { int ret = slice_del(z); /* delete, line 122 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 123 */ + 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); /* call en_ending, line 123 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + lab2: + z->c = z->l - m3; + } + { int m5 = z->l - z->c; (void)m5; /* do, line 126 */ + z->ket = z->c; /* [, line 127 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto 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) { /* among, line 127 */ + case 1: + { 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 */ + if (ret < 0) return ret; + } + { int m6 = z->l - z->c; (void)m6; /* or, line 130 */ + z->ket = z->c; /* [, line 130 */ + if (!(eq_s_b(z, 2, s_14))) goto lab6; /* literal, line 130 */ + z->bra = z->c; /* ], 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 (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; + } + { int ret = slice_del(z); /* delete, line 130 */ + if (ret < 0) return ret; + } + goto lab5; + lab6: + z->c = z->l - m6; + { 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); /* 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 (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; + } + { int ret = slice_del(z); /* delete, line 133 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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); /* call e_ending, line 136 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + break; + case 4: + { 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 */ + if (ret < 0) return ret; + } + break; + case 5: + { 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 */ + { int ret = slice_del(z); /* delete, line 142 */ + if (ret < 0) return ret; + } + break; + } + lab4: + 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; /* 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); + if (ret < 0) goto lab9; + z->c = ret; /* next, line 152 */ + } + z->bra = z->c; /* ], line 152 */ + { int ret = slice_del(z); /* delete, line 152 */ + if (ret < 0) return ret; + } + lab9: + z->c = z->l - m9; + } + return 1; +} + +extern int dutch_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 159 */ + { int ret = r_prelude(z); /* call prelude, line 159 */ + 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); /* call mark_regions, line 160 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + lab1: + z->c = c2; + } + z->lb = z->c; z->c = z->l; /* backwards, line 161 */ + + /* 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 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 = c3; + } + return 1; +} + +extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); } + +extern void dutch_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_english.c b/src/backend/snowball/libstemmer/stem_UTF_8_english.c new file mode 100644 index 0000000..ae206f6 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_english.c @@ -0,0 +1,1095 @@ +/* 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 english_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_exception2(struct SN_env * z); +static int r_exception1(struct SN_env * z); +static int r_Step_5(struct SN_env * z); +static int r_Step_4(struct SN_env * z); +static int r_Step_3(struct SN_env * z); +static int r_Step_2(struct SN_env * z); +static int r_Step_1c(struct SN_env * z); +static int r_Step_1b(struct SN_env * z); +static int r_Step_1a(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_shortv(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * english_UTF_8_create_env(void); +extern void english_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[5] = { 'a', 'r', 's', 'e', 'n' }; +static const symbol s_0_1[6] = { 'c', 'o', 'm', 'm', 'u', 'n' }; +static const symbol s_0_2[5] = { 'g', 'e', 'n', 'e', 'r' }; + +static const struct among a_0[3] = +{ +/* 0 */ { 5, s_0_0, -1, -1, 0}, +/* 1 */ { 6, s_0_1, -1, -1, 0}, +/* 2 */ { 5, s_0_2, -1, -1, 0} +}; + +static const symbol s_1_0[1] = { '\'' }; +static const symbol s_1_1[3] = { '\'', 's', '\'' }; +static const symbol s_1_2[2] = { '\'', 's' }; + +static const struct among a_1[3] = +{ +/* 0 */ { 1, s_1_0, -1, 1, 0}, +/* 1 */ { 3, s_1_1, 0, 1, 0}, +/* 2 */ { 2, s_1_2, -1, 1, 0} +}; + +static const symbol s_2_0[3] = { 'i', 'e', 'd' }; +static const symbol s_2_1[1] = { 's' }; +static const symbol s_2_2[3] = { 'i', 'e', 's' }; +static const symbol s_2_3[4] = { 's', 's', 'e', 's' }; +static const symbol s_2_4[2] = { 's', 's' }; +static const symbol s_2_5[2] = { 'u', 's' }; + +static const struct among a_2[6] = +{ +/* 0 */ { 3, s_2_0, -1, 2, 0}, +/* 1 */ { 1, s_2_1, -1, 3, 0}, +/* 2 */ { 3, s_2_2, 1, 2, 0}, +/* 3 */ { 4, s_2_3, 1, 1, 0}, +/* 4 */ { 2, s_2_4, 1, -1, 0}, +/* 5 */ { 2, s_2_5, 1, -1, 0} +}; + +static const symbol s_3_1[2] = { 'b', 'b' }; +static const symbol s_3_2[2] = { 'd', 'd' }; +static const symbol s_3_3[2] = { 'f', 'f' }; +static const symbol s_3_4[2] = { 'g', 'g' }; +static const symbol s_3_5[2] = { 'b', 'l' }; +static const symbol s_3_6[2] = { 'm', 'm' }; +static const symbol s_3_7[2] = { 'n', 'n' }; +static const symbol s_3_8[2] = { 'p', 'p' }; +static const symbol s_3_9[2] = { 'r', 'r' }; +static const symbol s_3_10[2] = { 'a', 't' }; +static const symbol s_3_11[2] = { 't', 't' }; +static const symbol s_3_12[2] = { 'i', 'z' }; + +static const struct among a_3[13] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 2, s_3_1, 0, 2, 0}, +/* 2 */ { 2, s_3_2, 0, 2, 0}, +/* 3 */ { 2, s_3_3, 0, 2, 0}, +/* 4 */ { 2, s_3_4, 0, 2, 0}, +/* 5 */ { 2, s_3_5, 0, 1, 0}, +/* 6 */ { 2, s_3_6, 0, 2, 0}, +/* 7 */ { 2, s_3_7, 0, 2, 0}, +/* 8 */ { 2, s_3_8, 0, 2, 0}, +/* 9 */ { 2, s_3_9, 0, 2, 0}, +/* 10 */ { 2, s_3_10, 0, 1, 0}, +/* 11 */ { 2, s_3_11, 0, 2, 0}, +/* 12 */ { 2, s_3_12, 0, 1, 0} +}; + +static const symbol s_4_0[2] = { 'e', 'd' }; +static const symbol s_4_1[3] = { 'e', 'e', 'd' }; +static const symbol s_4_2[3] = { 'i', 'n', 'g' }; +static const symbol s_4_3[4] = { 'e', 'd', 'l', 'y' }; +static const symbol s_4_4[5] = { 'e', 'e', 'd', 'l', 'y' }; +static const symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' }; + +static const struct among a_4[6] = +{ +/* 0 */ { 2, s_4_0, -1, 2, 0}, +/* 1 */ { 3, s_4_1, 0, 1, 0}, +/* 2 */ { 3, s_4_2, -1, 2, 0}, +/* 3 */ { 4, s_4_3, -1, 2, 0}, +/* 4 */ { 5, s_4_4, 3, 1, 0}, +/* 5 */ { 5, s_4_5, -1, 2, 0} +}; + +static const symbol s_5_0[4] = { 'a', 'n', 'c', 'i' }; +static const symbol s_5_1[4] = { 'e', 'n', 'c', 'i' }; +static const symbol s_5_2[3] = { 'o', 'g', 'i' }; +static const symbol s_5_3[2] = { 'l', 'i' }; +static const symbol s_5_4[3] = { 'b', 'l', 'i' }; +static const symbol s_5_5[4] = { 'a', 'b', 'l', 'i' }; +static const symbol s_5_6[4] = { 'a', 'l', 'l', 'i' }; +static const symbol s_5_7[5] = { 'f', 'u', 'l', 'l', 'i' }; +static const symbol s_5_8[6] = { 'l', 'e', 's', 's', 'l', 'i' }; +static const symbol s_5_9[5] = { 'o', 'u', 's', 'l', 'i' }; +static const symbol s_5_10[5] = { 'e', 'n', 't', 'l', 'i' }; +static const symbol s_5_11[5] = { 'a', 'l', 'i', 't', 'i' }; +static const symbol s_5_12[6] = { 'b', 'i', 'l', 'i', 't', 'i' }; +static const symbol s_5_13[5] = { 'i', 'v', 'i', 't', 'i' }; +static const symbol s_5_14[6] = { 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_5_15[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_5_16[5] = { 'a', 'l', 'i', 's', 'm' }; +static const symbol s_5_17[5] = { 'a', 't', 'i', 'o', 'n' }; +static const symbol s_5_18[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' }; +static const symbol s_5_19[4] = { 'i', 'z', 'e', 'r' }; +static const symbol s_5_20[4] = { 'a', 't', 'o', 'r' }; +static const symbol s_5_21[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' }; +static const symbol s_5_22[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' }; +static const symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' }; + +static const struct among a_5[24] = +{ +/* 0 */ { 4, s_5_0, -1, 3, 0}, +/* 1 */ { 4, s_5_1, -1, 2, 0}, +/* 2 */ { 3, s_5_2, -1, 13, 0}, +/* 3 */ { 2, s_5_3, -1, 15, 0}, +/* 4 */ { 3, s_5_4, 3, 12, 0}, +/* 5 */ { 4, s_5_5, 4, 4, 0}, +/* 6 */ { 4, s_5_6, 3, 8, 0}, +/* 7 */ { 5, s_5_7, 3, 9, 0}, +/* 8 */ { 6, s_5_8, 3, 14, 0}, +/* 9 */ { 5, s_5_9, 3, 10, 0}, +/* 10 */ { 5, s_5_10, 3, 5, 0}, +/* 11 */ { 5, s_5_11, -1, 8, 0}, +/* 12 */ { 6, s_5_12, -1, 12, 0}, +/* 13 */ { 5, s_5_13, -1, 11, 0}, +/* 14 */ { 6, s_5_14, -1, 1, 0}, +/* 15 */ { 7, s_5_15, 14, 7, 0}, +/* 16 */ { 5, s_5_16, -1, 8, 0}, +/* 17 */ { 5, s_5_17, -1, 7, 0}, +/* 18 */ { 7, s_5_18, 17, 6, 0}, +/* 19 */ { 4, s_5_19, -1, 6, 0}, +/* 20 */ { 4, s_5_20, -1, 7, 0}, +/* 21 */ { 7, s_5_21, -1, 11, 0}, +/* 22 */ { 7, s_5_22, -1, 9, 0}, +/* 23 */ { 7, s_5_23, -1, 10, 0} +}; + +static const symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' }; +static const symbol s_6_1[5] = { 'a', 't', 'i', 'v', 'e' }; +static const symbol s_6_2[5] = { 'a', 'l', 'i', 'z', 'e' }; +static const symbol s_6_3[5] = { 'i', 'c', 'i', 't', 'i' }; +static const symbol s_6_4[4] = { 'i', 'c', 'a', 'l' }; +static const symbol s_6_5[6] = { 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_6_6[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_6_7[3] = { 'f', 'u', 'l' }; +static const symbol s_6_8[4] = { 'n', 'e', 's', 's' }; + +static const struct among a_6[9] = +{ +/* 0 */ { 5, s_6_0, -1, 4, 0}, +/* 1 */ { 5, s_6_1, -1, 6, 0}, +/* 2 */ { 5, s_6_2, -1, 3, 0}, +/* 3 */ { 5, s_6_3, -1, 4, 0}, +/* 4 */ { 4, s_6_4, -1, 4, 0}, +/* 5 */ { 6, s_6_5, -1, 1, 0}, +/* 6 */ { 7, s_6_6, 5, 2, 0}, +/* 7 */ { 3, s_6_7, -1, 5, 0}, +/* 8 */ { 4, s_6_8, -1, 5, 0} +}; + +static const symbol s_7_0[2] = { 'i', 'c' }; +static const symbol s_7_1[4] = { 'a', 'n', 'c', 'e' }; +static const symbol s_7_2[4] = { 'e', 'n', 'c', 'e' }; +static const symbol s_7_3[4] = { 'a', 'b', 'l', 'e' }; +static const symbol s_7_4[4] = { 'i', 'b', 'l', 'e' }; +static const symbol s_7_5[3] = { 'a', 't', 'e' }; +static const symbol s_7_6[3] = { 'i', 'v', 'e' }; +static const symbol s_7_7[3] = { 'i', 'z', 'e' }; +static const symbol s_7_8[3] = { 'i', 't', 'i' }; +static const symbol s_7_9[2] = { 'a', 'l' }; +static const symbol s_7_10[3] = { 'i', 's', 'm' }; +static const symbol s_7_11[3] = { 'i', 'o', 'n' }; +static const symbol s_7_12[2] = { 'e', 'r' }; +static const symbol s_7_13[3] = { 'o', 'u', 's' }; +static const symbol s_7_14[3] = { 'a', 'n', 't' }; +static const symbol s_7_15[3] = { 'e', 'n', 't' }; +static const symbol s_7_16[4] = { 'm', 'e', 'n', 't' }; +static const symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' }; + +static const struct among a_7[18] = +{ +/* 0 */ { 2, s_7_0, -1, 1, 0}, +/* 1 */ { 4, s_7_1, -1, 1, 0}, +/* 2 */ { 4, s_7_2, -1, 1, 0}, +/* 3 */ { 4, s_7_3, -1, 1, 0}, +/* 4 */ { 4, s_7_4, -1, 1, 0}, +/* 5 */ { 3, s_7_5, -1, 1, 0}, +/* 6 */ { 3, s_7_6, -1, 1, 0}, +/* 7 */ { 3, s_7_7, -1, 1, 0}, +/* 8 */ { 3, s_7_8, -1, 1, 0}, +/* 9 */ { 2, s_7_9, -1, 1, 0}, +/* 10 */ { 3, s_7_10, -1, 1, 0}, +/* 11 */ { 3, s_7_11, -1, 2, 0}, +/* 12 */ { 2, s_7_12, -1, 1, 0}, +/* 13 */ { 3, s_7_13, -1, 1, 0}, +/* 14 */ { 3, s_7_14, -1, 1, 0}, +/* 15 */ { 3, s_7_15, -1, 1, 0}, +/* 16 */ { 4, s_7_16, 15, 1, 0}, +/* 17 */ { 5, s_7_17, 16, 1, 0} +}; + +static const symbol s_8_0[1] = { 'e' }; +static const symbol s_8_1[1] = { 'l' }; + +static const struct among a_8[2] = +{ +/* 0 */ { 1, s_8_0, -1, 1, 0}, +/* 1 */ { 1, s_8_1, -1, 2, 0} +}; + +static const symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' }; +static const symbol s_9_1[7] = { 'p', 'r', 'o', 'c', 'e', 'e', 'd' }; +static const symbol s_9_2[6] = { 'e', 'x', 'c', 'e', 'e', 'd' }; +static const symbol s_9_3[7] = { 'c', 'a', 'n', 'n', 'i', 'n', 'g' }; +static const symbol s_9_4[6] = { 'i', 'n', 'n', 'i', 'n', 'g' }; +static const symbol s_9_5[7] = { 'e', 'a', 'r', 'r', 'i', 'n', 'g' }; +static const symbol s_9_6[7] = { 'h', 'e', 'r', 'r', 'i', 'n', 'g' }; +static const symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' }; + +static const struct among a_9[8] = +{ +/* 0 */ { 7, s_9_0, -1, -1, 0}, +/* 1 */ { 7, s_9_1, -1, -1, 0}, +/* 2 */ { 6, s_9_2, -1, -1, 0}, +/* 3 */ { 7, s_9_3, -1, -1, 0}, +/* 4 */ { 6, s_9_4, -1, -1, 0}, +/* 5 */ { 7, s_9_5, -1, -1, 0}, +/* 6 */ { 7, s_9_6, -1, -1, 0}, +/* 7 */ { 6, s_9_7, -1, -1, 0} +}; + +static const symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' }; +static const symbol s_10_1[5] = { 'a', 't', 'l', 'a', 's' }; +static const symbol s_10_2[4] = { 'b', 'i', 'a', 's' }; +static const symbol s_10_3[6] = { 'c', 'o', 's', 'm', 'o', 's' }; +static const symbol s_10_4[5] = { 'd', 'y', 'i', 'n', 'g' }; +static const symbol s_10_5[5] = { 'e', 'a', 'r', 'l', 'y' }; +static const symbol s_10_6[6] = { 'g', 'e', 'n', 't', 'l', 'y' }; +static const symbol s_10_7[4] = { 'h', 'o', 'w', 'e' }; +static const symbol s_10_8[4] = { 'i', 'd', 'l', 'y' }; +static const symbol s_10_9[5] = { 'l', 'y', 'i', 'n', 'g' }; +static const symbol s_10_10[4] = { 'n', 'e', 'w', 's' }; +static const symbol s_10_11[4] = { 'o', 'n', 'l', 'y' }; +static const symbol s_10_12[6] = { 's', 'i', 'n', 'g', 'l', 'y' }; +static const symbol s_10_13[5] = { 's', 'k', 'i', 'e', 's' }; +static const symbol s_10_14[4] = { 's', 'k', 'i', 's' }; +static const symbol s_10_15[3] = { 's', 'k', 'y' }; +static const symbol s_10_16[5] = { 't', 'y', 'i', 'n', 'g' }; +static const symbol s_10_17[4] = { 'u', 'g', 'l', 'y' }; + +static const struct among a_10[18] = +{ +/* 0 */ { 5, s_10_0, -1, -1, 0}, +/* 1 */ { 5, s_10_1, -1, -1, 0}, +/* 2 */ { 4, s_10_2, -1, -1, 0}, +/* 3 */ { 6, s_10_3, -1, -1, 0}, +/* 4 */ { 5, s_10_4, -1, 3, 0}, +/* 5 */ { 5, s_10_5, -1, 9, 0}, +/* 6 */ { 6, s_10_6, -1, 7, 0}, +/* 7 */ { 4, s_10_7, -1, -1, 0}, +/* 8 */ { 4, s_10_8, -1, 6, 0}, +/* 9 */ { 5, s_10_9, -1, 4, 0}, +/* 10 */ { 4, s_10_10, -1, -1, 0}, +/* 11 */ { 4, s_10_11, -1, 10, 0}, +/* 12 */ { 6, s_10_12, -1, 11, 0}, +/* 13 */ { 5, s_10_13, -1, 2, 0}, +/* 14 */ { 4, s_10_14, -1, 1, 0}, +/* 15 */ { 3, s_10_15, -1, -1, 0}, +/* 16 */ { 5, s_10_16, -1, 5, 0}, +/* 17 */ { 4, s_10_17, -1, 8, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1 }; + +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[] = { '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) { /* forwardmode */ + z->B[0] = 0; /* unset Y_found, line 26 */ + { int c1 = z->c; /* do, line 27 */ + z->bra = z->c; /* [, line 27 */ + if (z->c == z->l || z->p[z->c] != '\'') goto lab0; /* literal, line 27 */ + z->c++; + z->ket = z->c; /* ], line 27 */ + { int ret = slice_del(z); /* delete, line 27 */ + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + { int c2 = z->c; /* do, line 28 */ + z->bra = z->c; /* [, line 28 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab1; /* literal, line 28 */ + z->c++; + z->ket = z->c; /* ], 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 */ + lab1: + z->c = c2; + } + { int c3 = z->c; /* do, line 29 */ + while(1) { /* repeat, line 29 */ + 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; /* grouping v, line 29 */ + z->bra = z->c; /* [, line 29 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 29 */ + z->c++; + z->ket = z->c; /* ], line 29 */ + z->c = c5; + break; + lab4: + 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 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 */ + continue; + lab3: + z->c = c4; + break; + } + z->c = c3; + } + return 1; +} + +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; /* among, line 36 */ + if (!(find_among(z, a_0, 3))) goto lab2; + goto lab1; + lab2: + z->c = c2; + { /* gopast */ /* grouping v, line 41 */ + int ret = out_grouping_U(z, g_v, 97, 121, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + { /* gopast */ /* non v, line 41 */ + int ret = in_grouping_U(z, g_v, 97, 121, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + } + lab1: + z->I[0] = z->c; /* setmark p1, line 42 */ + { /* gopast */ /* grouping v, line 43 */ + int ret = out_grouping_U(z, g_v, 97, 121, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + { /* gopast */ /* non v, line 43 */ + int ret = in_grouping_U(z, g_v, 97, 121, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + z->I[1] = z->c; /* setmark p2, line 43 */ + lab0: + z->c = c1; + } + return 1; +} + +static int r_shortv(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* or, line 51 */ + if (out_grouping_b_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; /* 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) { /* 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) { /* 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) { /* backwardmode */ + int among_var; + { int m1 = z->l - z->c; (void)m1; /* try, line 59 */ + z->ket = z->c; /* [, line 60 */ + if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; } /* substring, line 60 */ + if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; /* ], line 60 */ + { int ret = slice_del(z); /* delete, line 62 */ + if (ret < 0) return ret; + } + lab0: + ; + } + z->ket = z->c; /* [, line 65 */ + if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; /* substring, line 65 */ + among_var = find_among_b(z, a_2, 6); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 65 */ + switch (among_var) { /* among, line 65 */ + case 1: + { int ret = slice_from_s(z, 2, s_2); /* <-, line 66 */ + if (ret < 0) return ret; + } + break; + case 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; + } + { int ret = slice_from_s(z, 1, s_3); /* <-, line 68 */ + if (ret < 0) return ret; + } + goto lab1; + lab2: + z->c = z->l - m2; + { int ret = slice_from_s(z, 2, s_4); /* <-, line 68 */ + if (ret < 0) return ret; + } + } + lab1: + break; + case 3: + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 69 */ + } + { /* gopast */ /* grouping v, line 69 */ + int ret = out_grouping_b_U(z, g_v, 97, 121, 1); + if (ret < 0) return 0; + z->c -= ret; + } + { int ret = slice_del(z); /* delete, line 69 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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) { /* among, line 75 */ + case 1: + { int ret = r_R1(z); /* call R1, line 77 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 2, s_5); /* <-, line 77 */ + if (ret < 0) return ret; + } + break; + case 2: + { 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_test1; + } + { int ret = slice_del(z); /* delete, line 80 */ + if (ret < 0) return ret; + } + { int m_test2 = z->l - z->c; /* test, line 81 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 81 */ + among_var = find_among_b(z, a_3, 13); + if (!(among_var)) return 0; + z->c = z->l - m_test2; + } + switch (among_var) { /* among, line 81 */ + case 1: + { 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; + case 2: + z->ket = z->c; /* [, line 86 */ + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 86 */ + } + z->bra = z->c; /* ], line 86 */ + { int ret = slice_del(z); /* delete, line 86 */ + if (ret < 0) return ret; + } + break; + case 3: + if (z->c != z->I[0]) return 0; /* atmark, line 87 */ + { int m_test3 = z->l - z->c; /* test, line 87 */ + { int ret = r_shortv(z); /* call shortv, line 87 */ + if (ret <= 0) return ret; + } + z->c = z->l - m_test3; + } + { int ret; + { int saved_c = z->c; + ret = insert_s(z, z->c, z->c, 1, s_7); /* <+, line 87 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + break; + } + break; + } + return 1; +} + +static int r_Step_1c(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 94 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 94 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 94 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 94 */ + z->c--; + } +lab0: + z->bra = z->c; /* ], line 94 */ + 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) { /* 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; /* 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); /* call R1, line 100 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 100 */ + case 1: + { 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_10); /* <-, line 102 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_12); /* <-, line 104 */ + if (ret < 0) return ret; + } + break; + case 5: + { 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_14); /* <-, line 107 */ + if (ret < 0) return ret; + } + break; + case 7: + { 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_16); /* <-, line 111 */ + if (ret < 0) return ret; + } + break; + case 9: + { 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_18); /* <-, line 114 */ + if (ret < 0) return ret; + } + break; + case 11: + { 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_20); /* <-, line 118 */ + if (ret < 0) return ret; + } + break; + case 13: + 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, 4, s_22); /* <-, line 121 */ + if (ret < 0) return ret; + } + break; + case 15: + 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; + } + break; + } + return 1; +} + +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; /* 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); /* call R1, line 127 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 127 */ + case 1: + { 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_24); /* <-, line 129 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_26); /* <-, line 132 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_del(z); /* delete, line 134 */ + if (ret < 0) return ret; + } + break; + case 6: + { 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; + } + break; + } + return 1; +} + +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; /* 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); /* call R2, line 141 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 141 */ + case 1: + { int ret = slice_del(z); /* delete, line 144 */ + if (ret < 0) return ret; + } + break; + case 2: + { int m1 = z->l - z->c; (void)m1; /* or, line 145 */ + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 145 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 145 */ + z->c--; + } + lab0: + { int ret = slice_del(z); /* delete, line 145 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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) { /* among, line 150 */ + case 1: + { int m1 = z->l - z->c; (void)m1; /* or, 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); /* 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); /* call shortv, line 151 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + return 0; + lab2: + z->c = z->l - m2; + } + } + lab0: + { int ret = slice_del(z); /* delete, line 151 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = r_R2(z); /* call R2, line 152 */ + if (ret <= 0) return ret; + } + 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; + } + break; + } + return 1; +} + +static int r_exception2(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 158 */ + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 158 */ + 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) { /* 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; /* 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) { /* among, line 170 */ + case 1: + { 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_28); /* <-, line 175 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_30); /* <-, line 177 */ + if (ret < 0) return ret; + } + break; + case 5: + { 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_32); /* <-, line 182 */ + if (ret < 0) return ret; + } + break; + case 7: + { 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_34); /* <-, line 184 */ + if (ret < 0) return ret; + } + break; + case 9: + { 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_36); /* <-, line 186 */ + if (ret < 0) return ret; + } + break; + case 11: + { int ret = slice_from_s(z, 5, s_37); /* <-, line 187 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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 (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; + lab1: + z->c = c2; + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* goto, line 203 */ + } + } + { int ret = slice_from_s(z, 1, s_38); /* <-, line 203 */ + if (ret < 0) return ret; + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +extern int english_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* or, 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); /* hop, line 208 */ + if (ret < 0) goto lab3; + z->c = ret; + } + goto lab2; + lab3: + z->c = c2; + } + goto lab0; + lab2: + z->c = c1; + /* do, line 209 */ + { int ret = r_prelude(z); /* call prelude, line 209 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + 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 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 - m3; + } + { 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 - 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 - m5; + } + { 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 - m6; + } + { 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 - m7; + } + { 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 - m8; + } + { 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 - m9; + } + { 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 - m10; + } + } + lab7: + z->c = z->lb; + { 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 = c11; + } + } +lab0: + return 1; +} + +extern struct SN_env * english_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); } + +extern void english_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c b/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c new file mode 100644 index 0000000..0cbb64d --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c @@ -0,0 +1,739 @@ +/* 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 finnish_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_tidy(struct SN_env * z); +static int r_other_endings(struct SN_env * z); +static int r_t_plural(struct SN_env * z); +static int r_i_plural(struct SN_env * z); +static int r_case_ending(struct SN_env * z); +static int r_VI(struct SN_env * z); +static int r_LONG(struct SN_env * z); +static int r_possessive(struct SN_env * z); +static int r_particle_etc(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * finnish_UTF_8_create_env(void); +extern void finnish_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[2] = { 'p', 'a' }; +static const symbol s_0_1[3] = { 's', 't', 'i' }; +static const symbol s_0_2[4] = { 'k', 'a', 'a', 'n' }; +static const symbol s_0_3[3] = { 'h', 'a', 'n' }; +static const symbol s_0_4[3] = { 'k', 'i', 'n' }; +static const symbol s_0_5[4] = { 'h', 0xC3, 0xA4, 'n' }; +static const symbol s_0_6[6] = { 'k', 0xC3, 0xA4, 0xC3, 0xA4, 'n' }; +static const symbol s_0_7[2] = { 'k', 'o' }; +static const symbol s_0_8[3] = { 'p', 0xC3, 0xA4 }; +static const symbol s_0_9[3] = { 'k', 0xC3, 0xB6 }; + +static const struct among a_0[10] = +{ +/* 0 */ { 2, s_0_0, -1, 1, 0}, +/* 1 */ { 3, s_0_1, -1, 2, 0}, +/* 2 */ { 4, s_0_2, -1, 1, 0}, +/* 3 */ { 3, s_0_3, -1, 1, 0}, +/* 4 */ { 3, s_0_4, -1, 1, 0}, +/* 5 */ { 4, s_0_5, -1, 1, 0}, +/* 6 */ { 6, s_0_6, -1, 1, 0}, +/* 7 */ { 2, s_0_7, -1, 1, 0}, +/* 8 */ { 3, s_0_8, -1, 1, 0}, +/* 9 */ { 3, s_0_9, -1, 1, 0} +}; + +static const symbol s_1_0[3] = { 'l', 'l', 'a' }; +static const symbol s_1_1[2] = { 'n', 'a' }; +static const symbol s_1_2[3] = { 's', 's', 'a' }; +static const symbol s_1_3[2] = { 't', 'a' }; +static const symbol s_1_4[3] = { 'l', 't', 'a' }; +static const symbol s_1_5[3] = { 's', 't', 'a' }; + +static const struct among a_1[6] = +{ +/* 0 */ { 3, s_1_0, -1, -1, 0}, +/* 1 */ { 2, s_1_1, -1, -1, 0}, +/* 2 */ { 3, s_1_2, -1, -1, 0}, +/* 3 */ { 2, s_1_3, -1, -1, 0}, +/* 4 */ { 3, s_1_4, 3, -1, 0}, +/* 5 */ { 3, s_1_5, 3, -1, 0} +}; + +static const symbol s_2_0[4] = { 'l', 'l', 0xC3, 0xA4 }; +static const symbol s_2_1[3] = { 'n', 0xC3, 0xA4 }; +static const symbol s_2_2[4] = { 's', 's', 0xC3, 0xA4 }; +static const symbol s_2_3[3] = { 't', 0xC3, 0xA4 }; +static const symbol s_2_4[4] = { 'l', 't', 0xC3, 0xA4 }; +static const symbol s_2_5[4] = { 's', 't', 0xC3, 0xA4 }; + +static const struct among a_2[6] = +{ +/* 0 */ { 4, s_2_0, -1, -1, 0}, +/* 1 */ { 3, s_2_1, -1, -1, 0}, +/* 2 */ { 4, s_2_2, -1, -1, 0}, +/* 3 */ { 3, s_2_3, -1, -1, 0}, +/* 4 */ { 4, s_2_4, 3, -1, 0}, +/* 5 */ { 4, s_2_5, 3, -1, 0} +}; + +static const symbol s_3_0[3] = { 'l', 'l', 'e' }; +static const symbol s_3_1[3] = { 'i', 'n', 'e' }; + +static const struct among a_3[2] = +{ +/* 0 */ { 3, s_3_0, -1, -1, 0}, +/* 1 */ { 3, s_3_1, -1, -1, 0} +}; + +static const symbol s_4_0[3] = { 'n', 's', 'a' }; +static const symbol s_4_1[3] = { 'm', 'm', 'e' }; +static const symbol s_4_2[3] = { 'n', 'n', 'e' }; +static const symbol s_4_3[2] = { 'n', 'i' }; +static const symbol s_4_4[2] = { 's', 'i' }; +static const symbol s_4_5[2] = { 'a', 'n' }; +static const symbol s_4_6[2] = { 'e', 'n' }; +static const symbol s_4_7[3] = { 0xC3, 0xA4, 'n' }; +static const symbol s_4_8[4] = { 'n', 's', 0xC3, 0xA4 }; + +static const struct among a_4[9] = +{ +/* 0 */ { 3, s_4_0, -1, 3, 0}, +/* 1 */ { 3, s_4_1, -1, 3, 0}, +/* 2 */ { 3, s_4_2, -1, 3, 0}, +/* 3 */ { 2, s_4_3, -1, 2, 0}, +/* 4 */ { 2, s_4_4, -1, 1, 0}, +/* 5 */ { 2, s_4_5, -1, 4, 0}, +/* 6 */ { 2, s_4_6, -1, 6, 0}, +/* 7 */ { 3, s_4_7, -1, 5, 0}, +/* 8 */ { 4, s_4_8, -1, 3, 0} +}; + +static const symbol s_5_0[2] = { 'a', 'a' }; +static const symbol s_5_1[2] = { 'e', 'e' }; +static const symbol s_5_2[2] = { 'i', 'i' }; +static const symbol s_5_3[2] = { 'o', 'o' }; +static const symbol s_5_4[2] = { 'u', 'u' }; +static const symbol s_5_5[4] = { 0xC3, 0xA4, 0xC3, 0xA4 }; +static const symbol s_5_6[4] = { 0xC3, 0xB6, 0xC3, 0xB6 }; + +static const struct among a_5[7] = +{ +/* 0 */ { 2, s_5_0, -1, -1, 0}, +/* 1 */ { 2, s_5_1, -1, -1, 0}, +/* 2 */ { 2, s_5_2, -1, -1, 0}, +/* 3 */ { 2, s_5_3, -1, -1, 0}, +/* 4 */ { 2, s_5_4, -1, -1, 0}, +/* 5 */ { 4, s_5_5, -1, -1, 0}, +/* 6 */ { 4, s_5_6, -1, -1, 0} +}; + +static const symbol s_6_0[1] = { 'a' }; +static const symbol s_6_1[3] = { 'l', 'l', 'a' }; +static const symbol s_6_2[2] = { 'n', 'a' }; +static const symbol s_6_3[3] = { 's', 's', 'a' }; +static const symbol s_6_4[2] = { 't', 'a' }; +static const symbol s_6_5[3] = { 'l', 't', 'a' }; +static const symbol s_6_6[3] = { 's', 't', 'a' }; +static const symbol s_6_7[3] = { 't', 't', 'a' }; +static const symbol s_6_8[3] = { 'l', 'l', 'e' }; +static const symbol s_6_9[3] = { 'i', 'n', 'e' }; +static const symbol s_6_10[3] = { 'k', 's', 'i' }; +static const symbol s_6_11[1] = { 'n' }; +static const symbol s_6_12[3] = { 'h', 'a', 'n' }; +static const symbol s_6_13[3] = { 'd', 'e', 'n' }; +static const symbol s_6_14[4] = { 's', 'e', 'e', 'n' }; +static const symbol s_6_15[3] = { 'h', 'e', 'n' }; +static const symbol s_6_16[4] = { 't', 't', 'e', 'n' }; +static const symbol s_6_17[3] = { 'h', 'i', 'n' }; +static const symbol s_6_18[4] = { 's', 'i', 'i', 'n' }; +static const symbol s_6_19[3] = { 'h', 'o', 'n' }; +static const symbol s_6_20[4] = { 'h', 0xC3, 0xA4, 'n' }; +static const symbol s_6_21[4] = { 'h', 0xC3, 0xB6, 'n' }; +static const symbol s_6_22[2] = { 0xC3, 0xA4 }; +static const symbol s_6_23[4] = { 'l', 'l', 0xC3, 0xA4 }; +static const symbol s_6_24[3] = { 'n', 0xC3, 0xA4 }; +static const symbol s_6_25[4] = { 's', 's', 0xC3, 0xA4 }; +static const symbol s_6_26[3] = { 't', 0xC3, 0xA4 }; +static const symbol s_6_27[4] = { 'l', 't', 0xC3, 0xA4 }; +static const symbol s_6_28[4] = { 's', 't', 0xC3, 0xA4 }; +static const symbol s_6_29[4] = { 't', 't', 0xC3, 0xA4 }; + +static const struct among a_6[30] = +{ +/* 0 */ { 1, s_6_0, -1, 8, 0}, +/* 1 */ { 3, s_6_1, 0, -1, 0}, +/* 2 */ { 2, s_6_2, 0, -1, 0}, +/* 3 */ { 3, s_6_3, 0, -1, 0}, +/* 4 */ { 2, s_6_4, 0, -1, 0}, +/* 5 */ { 3, s_6_5, 4, -1, 0}, +/* 6 */ { 3, s_6_6, 4, -1, 0}, +/* 7 */ { 3, s_6_7, 4, 2, 0}, +/* 8 */ { 3, s_6_8, -1, -1, 0}, +/* 9 */ { 3, s_6_9, -1, -1, 0}, +/* 10 */ { 3, s_6_10, -1, -1, 0}, +/* 11 */ { 1, s_6_11, -1, 7, 0}, +/* 12 */ { 3, s_6_12, 11, 1, 0}, +/* 13 */ { 3, s_6_13, 11, -1, r_VI}, +/* 14 */ { 4, s_6_14, 11, -1, r_LONG}, +/* 15 */ { 3, s_6_15, 11, 2, 0}, +/* 16 */ { 4, s_6_16, 11, -1, r_VI}, +/* 17 */ { 3, s_6_17, 11, 3, 0}, +/* 18 */ { 4, s_6_18, 11, -1, r_VI}, +/* 19 */ { 3, s_6_19, 11, 4, 0}, +/* 20 */ { 4, s_6_20, 11, 5, 0}, +/* 21 */ { 4, s_6_21, 11, 6, 0}, +/* 22 */ { 2, s_6_22, -1, 8, 0}, +/* 23 */ { 4, s_6_23, 22, -1, 0}, +/* 24 */ { 3, s_6_24, 22, -1, 0}, +/* 25 */ { 4, s_6_25, 22, -1, 0}, +/* 26 */ { 3, s_6_26, 22, -1, 0}, +/* 27 */ { 4, s_6_27, 26, -1, 0}, +/* 28 */ { 4, s_6_28, 26, -1, 0}, +/* 29 */ { 4, s_6_29, 26, 2, 0} +}; + +static const symbol s_7_0[3] = { 'e', 'j', 'a' }; +static const symbol s_7_1[3] = { 'm', 'm', 'a' }; +static const symbol s_7_2[4] = { 'i', 'm', 'm', 'a' }; +static const symbol s_7_3[3] = { 'm', 'p', 'a' }; +static const symbol s_7_4[4] = { 'i', 'm', 'p', 'a' }; +static const symbol s_7_5[3] = { 'm', 'm', 'i' }; +static const symbol s_7_6[4] = { 'i', 'm', 'm', 'i' }; +static const symbol s_7_7[3] = { 'm', 'p', 'i' }; +static const symbol s_7_8[4] = { 'i', 'm', 'p', 'i' }; +static const symbol s_7_9[4] = { 'e', 'j', 0xC3, 0xA4 }; +static const symbol s_7_10[4] = { 'm', 'm', 0xC3, 0xA4 }; +static const symbol s_7_11[5] = { 'i', 'm', 'm', 0xC3, 0xA4 }; +static const symbol s_7_12[4] = { 'm', 'p', 0xC3, 0xA4 }; +static const symbol s_7_13[5] = { 'i', 'm', 'p', 0xC3, 0xA4 }; + +static const struct among a_7[14] = +{ +/* 0 */ { 3, s_7_0, -1, -1, 0}, +/* 1 */ { 3, s_7_1, -1, 1, 0}, +/* 2 */ { 4, s_7_2, 1, -1, 0}, +/* 3 */ { 3, s_7_3, -1, 1, 0}, +/* 4 */ { 4, s_7_4, 3, -1, 0}, +/* 5 */ { 3, s_7_5, -1, 1, 0}, +/* 6 */ { 4, s_7_6, 5, -1, 0}, +/* 7 */ { 3, s_7_7, -1, 1, 0}, +/* 8 */ { 4, s_7_8, 7, -1, 0}, +/* 9 */ { 4, s_7_9, -1, -1, 0}, +/* 10 */ { 4, s_7_10, -1, 1, 0}, +/* 11 */ { 5, s_7_11, 10, -1, 0}, +/* 12 */ { 4, s_7_12, -1, 1, 0}, +/* 13 */ { 5, s_7_13, 12, -1, 0} +}; + +static const symbol s_8_0[1] = { 'i' }; +static const symbol s_8_1[1] = { 'j' }; + +static const struct among a_8[2] = +{ +/* 0 */ { 1, s_8_0, -1, -1, 0}, +/* 1 */ { 1, s_8_1, -1, -1, 0} +}; + +static const symbol s_9_0[3] = { 'm', 'm', 'a' }; +static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' }; + +static const struct among a_9[2] = +{ +/* 0 */ { 3, s_9_0, -1, 1, 0}, +/* 1 */ { 4, s_9_1, 0, -1, 0} +}; + +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', '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) { /* 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[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; + } + 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; /* grouping particle_end, line 63 */ + break; + case 2: + { int ret = r_R2(z); /* call R2, line 65 */ + if (ret <= 0) return ret; + } + break; + } + { int ret = slice_del(z); /* delete, line 67 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_possessive(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 70 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 70 */ + among_var = find_among_b(z, a_4, 9); /* substring, line 70 */ + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 70 */ + z->lb = mlimit1; + } + switch (among_var) { /* among, line 71 */ + case 1: + { int m2 = z->l - z->c; (void)m2; /* not, line 73 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; /* literal, line 73 */ + z->c--; + return 0; + lab0: + z->c = z->l - m2; + } + { int ret = slice_del(z); /* delete, line 73 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 75 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 75 */ + if (!(eq_s_b(z, 3, s_0))) return 0; /* literal, line 75 */ + z->bra = z->c; /* ], line 75 */ + { int ret = slice_from_s(z, 3, s_1); /* <-, line 75 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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; /* 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; /* 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; /* 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; + } + return 1; +} + +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) { /* 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) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 97 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 97 */ + among_var = find_among_b(z, a_6, 30); /* substring, line 97 */ + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 97 */ + z->lb = mlimit1; + } + switch (among_var) { /* among, line 98 */ + case 1: + if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */ + z->c--; + break; + case 2: + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */ + z->c--; + break; + case 3: + if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */ + z->c--; + break; + case 4: + 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_2))) return 0; /* literal, line 103 */ + break; + case 6: + if (!(eq_s_b(z, 2, s_3))) return 0; /* literal, line 104 */ + break; + case 7: + { int m2 = z->l - z->c; (void)m2; /* try, line 112 */ + { int m3 = z->l - z->c; (void)m3; /* and, line 114 */ + { int m4 = z->l - z->c; (void)m4; /* or, line 113 */ + { int ret = r_LONG(z); /* call LONG, line 112 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + goto lab1; + lab2: + z->c = z->l - m4; + if (!(eq_s_b(z, 2, s_4))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */ + } + lab1: + z->c = z->l - m3; + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) { z->c = z->l - m2; goto lab0; } + z->c = ret; /* next, line 114 */ + } + } + z->bra = z->c; /* ], line 114 */ + lab0: + ; + } + break; + case 8: + if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */ + if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */ + break; + } + { int ret = slice_del(z); /* delete, line 139 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set ending_removed, line 140 */ + return 1; +} + +static int r_other_endings(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 143 */ + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; /* [, line 143 */ + among_var = find_among_b(z, a_7, 14); /* substring, line 143 */ + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 143 */ + z->lb = mlimit1; + } + switch (among_var) { /* among, line 144 */ + case 1: + { int m2 = z->l - z->c; (void)m2; /* not, line 147 */ + if (!(eq_s_b(z, 2, s_5))) goto lab0; /* literal, line 147 */ + return 0; + lab0: + z->c = z->l - m2; + } + break; + } + { int ret = slice_del(z); /* delete, line 152 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_i_plural(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 155 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 155 */ + if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } /* substring, line 155 */ + 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 159 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_t_plural(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 162 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 163 */ + if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */ + 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 164 */ + if (ret < 0) return ret; + } + z->lb = mlimit1; + } + + { int mlimit3; /* setlimit, line 166 */ + if (z->c < z->I[1]) return 0; + mlimit3 = z->lb; z->lb = z->I[1]; + z->ket = z->c; /* [, line 166 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */ + 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) { /* among, line 167 */ + case 1: + { int m4 = z->l - z->c; (void)m4; /* not, line 168 */ + if (!(eq_s_b(z, 2, s_6))) goto lab0; /* literal, line 168 */ + return 0; + lab0: + z->c = z->l - m4; + } + break; + } + { int ret = slice_del(z); /* delete, line 171 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_tidy(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 174 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + { int m2 = z->l - z->c; (void)m2; /* do, line 175 */ + { int m3 = z->l - z->c; (void)m3; /* and, line 175 */ + { int ret = r_LONG(z); /* call LONG, line 175 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + z->c = z->l - m3; + z->ket = z->c; /* [, line 175 */ + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) goto lab0; + z->c = ret; /* 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 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 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 (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 177 */ + if (ret < 0) return ret; + } + lab2: + z->c = z->l - m5; + } + { int m7 = z->l - z->c; (void)m7; /* do, line 178 */ + z->ket = z->c; /* [, line 178 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 178 */ + 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 = mlimit1; + } + if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */ + z->ket = z->c; /* [, line 180 */ + if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */ + z->bra = z->c; /* ], line 180 */ + z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */ + if (z->S[0] == 0) return -1; /* -> x, line 180 */ + if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */ + { int ret = slice_del(z); /* delete, line 180 */ + if (ret < 0) return ret; + } + return 1; +} + +extern int finnish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 186 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 186 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + 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 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 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 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 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; + } + /* 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; + } + lab7: + z->c = z->l - m6; + } + 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 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 - m8; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * finnish_UTF_8_create_env(void) { return SN_create_env(1, 2, 1); } + +extern void finnish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_french.c b/src/backend/snowball/libstemmer/stem_UTF_8_french.c new file mode 100644 index 0000000..9e12865 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_french.c @@ -0,0 +1,1273 @@ +/* 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 french_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_un_accent(struct SN_env * z); +static int r_un_double(struct SN_env * z); +static int r_residual_suffix(struct SN_env * z); +static int r_verb_suffix(struct SN_env * z); +static int r_i_verb_suffix(struct SN_env * z); +static int r_standard_suffix(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * french_UTF_8_create_env(void); +extern void french_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[3] = { 'c', 'o', 'l' }; +static const symbol s_0_1[3] = { 'p', 'a', 'r' }; +static const symbol s_0_2[3] = { 't', 'a', 'p' }; + +static const struct among a_0[3] = +{ +/* 0 */ { 3, s_0_0, -1, -1, 0}, +/* 1 */ { 3, s_0_1, -1, -1, 0}, +/* 2 */ { 3, s_0_2, -1, -1, 0} +}; + +static const symbol s_1_1[1] = { 'H' }; +static const symbol s_1_2[2] = { 'H', 'e' }; +static const symbol s_1_3[2] = { 'H', 'i' }; +static const symbol s_1_4[1] = { 'I' }; +static const symbol s_1_5[1] = { 'U' }; +static const symbol s_1_6[1] = { 'Y' }; + +static const struct among a_1[7] = +{ +/* 0 */ { 0, 0, -1, 7, 0}, +/* 1 */ { 1, s_1_1, 0, 6, 0}, +/* 2 */ { 2, s_1_2, 1, 4, 0}, +/* 3 */ { 2, s_1_3, 1, 5, 0}, +/* 4 */ { 1, s_1_4, 0, 1, 0}, +/* 5 */ { 1, s_1_5, 0, 2, 0}, +/* 6 */ { 1, s_1_6, 0, 3, 0} +}; + +static const symbol s_2_0[3] = { 'i', 'q', 'U' }; +static const symbol s_2_1[3] = { 'a', 'b', 'l' }; +static const symbol s_2_2[4] = { 'I', 0xC3, 0xA8, 'r' }; +static const symbol s_2_3[4] = { 'i', 0xC3, 0xA8, 'r' }; +static const symbol s_2_4[3] = { 'e', 'u', 's' }; +static const symbol s_2_5[2] = { 'i', 'v' }; + +static const struct among a_2[6] = +{ +/* 0 */ { 3, s_2_0, -1, 3, 0}, +/* 1 */ { 3, s_2_1, -1, 3, 0}, +/* 2 */ { 4, s_2_2, -1, 4, 0}, +/* 3 */ { 4, s_2_3, -1, 4, 0}, +/* 4 */ { 3, s_2_4, -1, 2, 0}, +/* 5 */ { 2, s_2_5, -1, 1, 0} +}; + +static const symbol s_3_0[2] = { 'i', 'c' }; +static const symbol s_3_1[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_3_2[2] = { 'i', 'v' }; + +static const struct among a_3[3] = +{ +/* 0 */ { 2, s_3_0, -1, 2, 0}, +/* 1 */ { 4, s_3_1, -1, 1, 0}, +/* 2 */ { 2, s_3_2, -1, 3, 0} +}; + +static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' }; +static const symbol s_4_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' }; +static const symbol s_4_2[4] = { 'a', 'n', 'c', 'e' }; +static const symbol s_4_3[4] = { 'e', 'n', 'c', 'e' }; +static const symbol s_4_4[5] = { 'l', 'o', 'g', 'i', 'e' }; +static const symbol s_4_5[4] = { 'a', 'b', 'l', 'e' }; +static const symbol s_4_6[4] = { 'i', 's', 'm', 'e' }; +static const symbol s_4_7[4] = { 'e', 'u', 's', 'e' }; +static const symbol s_4_8[4] = { 'i', 's', 't', 'e' }; +static const symbol s_4_9[3] = { 'i', 'v', 'e' }; +static const symbol s_4_10[2] = { 'i', 'f' }; +static const symbol s_4_11[5] = { 'u', 's', 'i', 'o', 'n' }; +static const symbol s_4_12[5] = { 'a', 't', 'i', 'o', 'n' }; +static const symbol s_4_13[5] = { 'u', 't', 'i', 'o', 'n' }; +static const symbol s_4_14[5] = { 'a', 't', 'e', 'u', 'r' }; +static const symbol s_4_15[5] = { 'i', 'q', 'U', 'e', 's' }; +static const symbol s_4_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' }; +static const symbol s_4_17[5] = { 'a', 'n', 'c', 'e', 's' }; +static const symbol s_4_18[5] = { 'e', 'n', 'c', 'e', 's' }; +static const symbol s_4_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' }; +static const symbol s_4_20[5] = { 'a', 'b', 'l', 'e', 's' }; +static const symbol s_4_21[5] = { 'i', 's', 'm', 'e', 's' }; +static const symbol s_4_22[5] = { 'e', 'u', 's', 'e', 's' }; +static const symbol s_4_23[5] = { 'i', 's', 't', 'e', 's' }; +static const symbol s_4_24[4] = { 'i', 'v', 'e', 's' }; +static const symbol s_4_25[3] = { 'i', 'f', 's' }; +static const symbol s_4_26[6] = { 'u', 's', 'i', 'o', 'n', 's' }; +static const symbol s_4_27[6] = { 'a', 't', 'i', 'o', 'n', 's' }; +static const symbol s_4_28[6] = { 'u', 't', 'i', 'o', 'n', 's' }; +static const symbol s_4_29[6] = { 'a', 't', 'e', 'u', 'r', 's' }; +static const symbol s_4_30[5] = { 'm', 'e', 'n', 't', 's' }; +static const symbol s_4_31[6] = { 'e', 'm', 'e', 'n', 't', 's' }; +static const symbol s_4_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' }; +static const symbol s_4_33[5] = { 'i', 't', 0xC3, 0xA9, 's' }; +static const symbol s_4_34[4] = { 'm', 'e', 'n', 't' }; +static const symbol s_4_35[5] = { 'e', 'm', 'e', 'n', 't' }; +static const symbol s_4_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' }; +static const symbol s_4_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' }; +static const symbol s_4_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' }; +static const symbol s_4_39[3] = { 'a', 'u', 'x' }; +static const symbol s_4_40[4] = { 'e', 'a', 'u', 'x' }; +static const symbol s_4_41[3] = { 'e', 'u', 'x' }; +static const symbol s_4_42[4] = { 'i', 't', 0xC3, 0xA9 }; + +static const struct among a_4[43] = +{ +/* 0 */ { 4, s_4_0, -1, 1, 0}, +/* 1 */ { 6, s_4_1, -1, 2, 0}, +/* 2 */ { 4, s_4_2, -1, 1, 0}, +/* 3 */ { 4, s_4_3, -1, 5, 0}, +/* 4 */ { 5, s_4_4, -1, 3, 0}, +/* 5 */ { 4, s_4_5, -1, 1, 0}, +/* 6 */ { 4, s_4_6, -1, 1, 0}, +/* 7 */ { 4, s_4_7, -1, 11, 0}, +/* 8 */ { 4, s_4_8, -1, 1, 0}, +/* 9 */ { 3, s_4_9, -1, 8, 0}, +/* 10 */ { 2, s_4_10, -1, 8, 0}, +/* 11 */ { 5, s_4_11, -1, 4, 0}, +/* 12 */ { 5, s_4_12, -1, 2, 0}, +/* 13 */ { 5, s_4_13, -1, 4, 0}, +/* 14 */ { 5, s_4_14, -1, 2, 0}, +/* 15 */ { 5, s_4_15, -1, 1, 0}, +/* 16 */ { 7, s_4_16, -1, 2, 0}, +/* 17 */ { 5, s_4_17, -1, 1, 0}, +/* 18 */ { 5, s_4_18, -1, 5, 0}, +/* 19 */ { 6, s_4_19, -1, 3, 0}, +/* 20 */ { 5, s_4_20, -1, 1, 0}, +/* 21 */ { 5, s_4_21, -1, 1, 0}, +/* 22 */ { 5, s_4_22, -1, 11, 0}, +/* 23 */ { 5, s_4_23, -1, 1, 0}, +/* 24 */ { 4, s_4_24, -1, 8, 0}, +/* 25 */ { 3, s_4_25, -1, 8, 0}, +/* 26 */ { 6, s_4_26, -1, 4, 0}, +/* 27 */ { 6, s_4_27, -1, 2, 0}, +/* 28 */ { 6, s_4_28, -1, 4, 0}, +/* 29 */ { 6, s_4_29, -1, 2, 0}, +/* 30 */ { 5, s_4_30, -1, 15, 0}, +/* 31 */ { 6, s_4_31, 30, 6, 0}, +/* 32 */ { 9, s_4_32, 31, 12, 0}, +/* 33 */ { 5, s_4_33, -1, 7, 0}, +/* 34 */ { 4, s_4_34, -1, 15, 0}, +/* 35 */ { 5, s_4_35, 34, 6, 0}, +/* 36 */ { 8, s_4_36, 35, 12, 0}, +/* 37 */ { 6, s_4_37, 34, 13, 0}, +/* 38 */ { 6, s_4_38, 34, 14, 0}, +/* 39 */ { 3, s_4_39, -1, 10, 0}, +/* 40 */ { 4, s_4_40, 39, 9, 0}, +/* 41 */ { 3, s_4_41, -1, 1, 0}, +/* 42 */ { 4, s_4_42, -1, 7, 0} +}; + +static const symbol s_5_0[3] = { 'i', 'r', 'a' }; +static const symbol s_5_1[2] = { 'i', 'e' }; +static const symbol s_5_2[4] = { 'i', 's', 's', 'e' }; +static const symbol s_5_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' }; +static const symbol s_5_4[1] = { 'i' }; +static const symbol s_5_5[4] = { 'i', 'r', 'a', 'i' }; +static const symbol s_5_6[2] = { 'i', 'r' }; +static const symbol s_5_7[4] = { 'i', 'r', 'a', 's' }; +static const symbol s_5_8[3] = { 'i', 'e', 's' }; +static const symbol s_5_9[5] = { 0xC3, 0xAE, 'm', 'e', 's' }; +static const symbol s_5_10[5] = { 'i', 's', 's', 'e', 's' }; +static const symbol s_5_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' }; +static const symbol s_5_12[5] = { 0xC3, 0xAE, 't', 'e', 's' }; +static const symbol s_5_13[2] = { 'i', 's' }; +static const symbol s_5_14[5] = { 'i', 'r', 'a', 'i', 's' }; +static const symbol s_5_15[6] = { 'i', 's', 's', 'a', 'i', 's' }; +static const symbol s_5_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' }; +static const symbol s_5_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' }; +static const symbol s_5_18[5] = { 'i', 'r', 'o', 'n', 's' }; +static const symbol s_5_19[6] = { 'i', 's', 's', 'o', 'n', 's' }; +static const symbol s_5_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' }; +static const symbol s_5_21[2] = { 'i', 't' }; +static const symbol s_5_22[5] = { 'i', 'r', 'a', 'i', 't' }; +static const symbol s_5_23[6] = { 'i', 's', 's', 'a', 'i', 't' }; +static const symbol s_5_24[6] = { 'i', 's', 's', 'a', 'n', 't' }; +static const symbol s_5_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' }; +static const symbol s_5_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' }; +static const symbol s_5_27[5] = { 'i', 'r', 'e', 'n', 't' }; +static const symbol s_5_28[6] = { 'i', 's', 's', 'e', 'n', 't' }; +static const symbol s_5_29[5] = { 'i', 'r', 'o', 'n', 't' }; +static const symbol s_5_30[3] = { 0xC3, 0xAE, 't' }; +static const symbol s_5_31[5] = { 'i', 'r', 'i', 'e', 'z' }; +static const symbol s_5_32[6] = { 'i', 's', 's', 'i', 'e', 'z' }; +static const symbol s_5_33[4] = { 'i', 'r', 'e', 'z' }; +static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' }; + +static const struct among a_5[35] = +{ +/* 0 */ { 3, s_5_0, -1, 1, 0}, +/* 1 */ { 2, s_5_1, -1, 1, 0}, +/* 2 */ { 4, s_5_2, -1, 1, 0}, +/* 3 */ { 7, s_5_3, -1, 1, 0}, +/* 4 */ { 1, s_5_4, -1, 1, 0}, +/* 5 */ { 4, s_5_5, 4, 1, 0}, +/* 6 */ { 2, s_5_6, -1, 1, 0}, +/* 7 */ { 4, s_5_7, -1, 1, 0}, +/* 8 */ { 3, s_5_8, -1, 1, 0}, +/* 9 */ { 5, s_5_9, -1, 1, 0}, +/* 10 */ { 5, s_5_10, -1, 1, 0}, +/* 11 */ { 8, s_5_11, -1, 1, 0}, +/* 12 */ { 5, s_5_12, -1, 1, 0}, +/* 13 */ { 2, s_5_13, -1, 1, 0}, +/* 14 */ { 5, s_5_14, 13, 1, 0}, +/* 15 */ { 6, s_5_15, 13, 1, 0}, +/* 16 */ { 6, s_5_16, -1, 1, 0}, +/* 17 */ { 7, s_5_17, -1, 1, 0}, +/* 18 */ { 5, s_5_18, -1, 1, 0}, +/* 19 */ { 6, s_5_19, -1, 1, 0}, +/* 20 */ { 7, s_5_20, -1, 1, 0}, +/* 21 */ { 2, s_5_21, -1, 1, 0}, +/* 22 */ { 5, s_5_22, 21, 1, 0}, +/* 23 */ { 6, s_5_23, 21, 1, 0}, +/* 24 */ { 6, s_5_24, -1, 1, 0}, +/* 25 */ { 7, s_5_25, -1, 1, 0}, +/* 26 */ { 8, s_5_26, -1, 1, 0}, +/* 27 */ { 5, s_5_27, -1, 1, 0}, +/* 28 */ { 6, s_5_28, -1, 1, 0}, +/* 29 */ { 5, s_5_29, -1, 1, 0}, +/* 30 */ { 3, s_5_30, -1, 1, 0}, +/* 31 */ { 5, s_5_31, -1, 1, 0}, +/* 32 */ { 6, s_5_32, -1, 1, 0}, +/* 33 */ { 4, s_5_33, -1, 1, 0}, +/* 34 */ { 5, s_5_34, -1, 1, 0} +}; + +static const symbol s_6_0[1] = { 'a' }; +static const symbol s_6_1[3] = { 'e', 'r', 'a' }; +static const symbol s_6_2[4] = { 'a', 's', 's', 'e' }; +static const symbol s_6_3[4] = { 'a', 'n', 't', 'e' }; +static const symbol s_6_4[3] = { 0xC3, 0xA9, 'e' }; +static const symbol s_6_5[2] = { 'a', 'i' }; +static const symbol s_6_6[4] = { 'e', 'r', 'a', 'i' }; +static const symbol s_6_7[2] = { 'e', 'r' }; +static const symbol s_6_8[2] = { 'a', 's' }; +static const symbol s_6_9[4] = { 'e', 'r', 'a', 's' }; +static const symbol s_6_10[5] = { 0xC3, 0xA2, 'm', 'e', 's' }; +static const symbol s_6_11[5] = { 'a', 's', 's', 'e', 's' }; +static const symbol s_6_12[5] = { 'a', 'n', 't', 'e', 's' }; +static const symbol s_6_13[5] = { 0xC3, 0xA2, 't', 'e', 's' }; +static const symbol s_6_14[4] = { 0xC3, 0xA9, 'e', 's' }; +static const symbol s_6_15[3] = { 'a', 'i', 's' }; +static const symbol s_6_16[5] = { 'e', 'r', 'a', 'i', 's' }; +static const symbol s_6_17[4] = { 'i', 'o', 'n', 's' }; +static const symbol s_6_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' }; +static const symbol s_6_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' }; +static const symbol s_6_20[5] = { 'e', 'r', 'o', 'n', 's' }; +static const symbol s_6_21[4] = { 'a', 'n', 't', 's' }; +static const symbol s_6_22[3] = { 0xC3, 0xA9, 's' }; +static const symbol s_6_23[3] = { 'a', 'i', 't' }; +static const symbol s_6_24[5] = { 'e', 'r', 'a', 'i', 't' }; +static const symbol s_6_25[3] = { 'a', 'n', 't' }; +static const symbol s_6_26[5] = { 'a', 'I', 'e', 'n', 't' }; +static const symbol s_6_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' }; +static const symbol s_6_28[6] = { 0xC3, 0xA8, 'r', 'e', 'n', 't' }; +static const symbol s_6_29[6] = { 'a', 's', 's', 'e', 'n', 't' }; +static const symbol s_6_30[5] = { 'e', 'r', 'o', 'n', 't' }; +static const symbol s_6_31[3] = { 0xC3, 0xA2, 't' }; +static const symbol s_6_32[2] = { 'e', 'z' }; +static const symbol s_6_33[3] = { 'i', 'e', 'z' }; +static const symbol s_6_34[5] = { 'e', 'r', 'i', 'e', 'z' }; +static const symbol s_6_35[6] = { 'a', 's', 's', 'i', 'e', 'z' }; +static const symbol s_6_36[4] = { 'e', 'r', 'e', 'z' }; +static const symbol s_6_37[2] = { 0xC3, 0xA9 }; + +static const struct among a_6[38] = +{ +/* 0 */ { 1, s_6_0, -1, 3, 0}, +/* 1 */ { 3, s_6_1, 0, 2, 0}, +/* 2 */ { 4, s_6_2, -1, 3, 0}, +/* 3 */ { 4, s_6_3, -1, 3, 0}, +/* 4 */ { 3, s_6_4, -1, 2, 0}, +/* 5 */ { 2, s_6_5, -1, 3, 0}, +/* 6 */ { 4, s_6_6, 5, 2, 0}, +/* 7 */ { 2, s_6_7, -1, 2, 0}, +/* 8 */ { 2, s_6_8, -1, 3, 0}, +/* 9 */ { 4, s_6_9, 8, 2, 0}, +/* 10 */ { 5, s_6_10, -1, 3, 0}, +/* 11 */ { 5, s_6_11, -1, 3, 0}, +/* 12 */ { 5, s_6_12, -1, 3, 0}, +/* 13 */ { 5, s_6_13, -1, 3, 0}, +/* 14 */ { 4, s_6_14, -1, 2, 0}, +/* 15 */ { 3, s_6_15, -1, 3, 0}, +/* 16 */ { 5, s_6_16, 15, 2, 0}, +/* 17 */ { 4, s_6_17, -1, 1, 0}, +/* 18 */ { 6, s_6_18, 17, 2, 0}, +/* 19 */ { 7, s_6_19, 17, 3, 0}, +/* 20 */ { 5, s_6_20, -1, 2, 0}, +/* 21 */ { 4, s_6_21, -1, 3, 0}, +/* 22 */ { 3, s_6_22, -1, 2, 0}, +/* 23 */ { 3, s_6_23, -1, 3, 0}, +/* 24 */ { 5, s_6_24, 23, 2, 0}, +/* 25 */ { 3, s_6_25, -1, 3, 0}, +/* 26 */ { 5, s_6_26, -1, 3, 0}, +/* 27 */ { 7, s_6_27, 26, 2, 0}, +/* 28 */ { 6, s_6_28, -1, 2, 0}, +/* 29 */ { 6, s_6_29, -1, 3, 0}, +/* 30 */ { 5, s_6_30, -1, 2, 0}, +/* 31 */ { 3, s_6_31, -1, 3, 0}, +/* 32 */ { 2, s_6_32, -1, 2, 0}, +/* 33 */ { 3, s_6_33, 32, 2, 0}, +/* 34 */ { 5, s_6_34, 33, 2, 0}, +/* 35 */ { 6, s_6_35, 33, 3, 0}, +/* 36 */ { 4, s_6_36, 32, 2, 0}, +/* 37 */ { 2, s_6_37, -1, 2, 0} +}; + +static const symbol s_7_0[1] = { 'e' }; +static const symbol s_7_1[5] = { 'I', 0xC3, 0xA8, 'r', 'e' }; +static const symbol s_7_2[5] = { 'i', 0xC3, 0xA8, 'r', 'e' }; +static const symbol s_7_3[3] = { 'i', 'o', 'n' }; +static const symbol s_7_4[3] = { 'I', 'e', 'r' }; +static const symbol s_7_5[3] = { 'i', 'e', 'r' }; + +static const struct among a_7[6] = +{ +/* 0 */ { 1, s_7_0, -1, 3, 0}, +/* 1 */ { 5, s_7_1, 0, 2, 0}, +/* 2 */ { 5, s_7_2, 0, 2, 0}, +/* 3 */ { 3, s_7_3, -1, 1, 0}, +/* 4 */ { 3, s_7_4, -1, 2, 0}, +/* 5 */ { 3, s_7_5, -1, 2, 0} +}; + +static const symbol s_8_0[3] = { 'e', 'l', 'l' }; +static const symbol s_8_1[4] = { 'e', 'i', 'l', 'l' }; +static const symbol s_8_2[3] = { 'e', 'n', 'n' }; +static const symbol s_8_3[3] = { 'o', 'n', 'n' }; +static const symbol s_8_4[3] = { 'e', 't', 't' }; + +static const struct among a_8[5] = +{ +/* 0 */ { 3, s_8_0, -1, -1, 0}, +/* 1 */ { 4, s_8_1, -1, -1, 0}, +/* 2 */ { 3, s_8_2, -1, -1, 0}, +/* 3 */ { 3, s_8_3, -1, -1, 0}, +/* 4 */ { 3, s_8_4, -1, -1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 }; + +static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + +static const symbol s_0[] = { 'U' }; +static const symbol s_1[] = { 'I' }; +static const symbol s_2[] = { 'Y' }; +static const symbol s_3[] = { 0xC3, 0xAB }; +static const symbol s_4[] = { 'H', 'e' }; +static const symbol s_5[] = { 0xC3, 0xAF }; +static const symbol s_6[] = { 'H', 'i' }; +static const symbol s_7[] = { 'Y' }; +static const symbol s_8[] = { 'U' }; +static const symbol s_9[] = { 'i' }; +static const symbol s_10[] = { 'u' }; +static const symbol s_11[] = { 'y' }; +static const symbol s_12[] = { 0xC3, 0xAB }; +static const symbol s_13[] = { 0xC3, 0xAF }; +static const symbol s_14[] = { 'i', 'c' }; +static const symbol s_15[] = { 'i', 'q', 'U' }; +static const symbol s_16[] = { 'l', 'o', 'g' }; +static const symbol s_17[] = { 'u' }; +static const symbol s_18[] = { 'e', 'n', 't' }; +static const symbol s_19[] = { 'a', 't' }; +static const symbol s_20[] = { 'e', 'u', 'x' }; +static const symbol s_21[] = { 'i' }; +static const symbol s_22[] = { 'a', 'b', 'l' }; +static const symbol s_23[] = { 'i', 'q', 'U' }; +static const symbol s_24[] = { 'a', 't' }; +static const symbol s_25[] = { 'i', 'c' }; +static const symbol s_26[] = { 'i', 'q', 'U' }; +static const symbol s_27[] = { 'e', 'a', 'u' }; +static const symbol s_28[] = { 'a', 'l' }; +static const symbol s_29[] = { 'e', 'u', 'x' }; +static const symbol s_30[] = { 'a', 'n', 't' }; +static const symbol s_31[] = { 'e', 'n', 't' }; +static const symbol s_32[] = { 'H', 'i' }; +static const symbol s_33[] = { 'i' }; +static const symbol s_34[] = { 0xC3, 0xA9 }; +static const symbol s_35[] = { 0xC3, 0xA8 }; +static const symbol s_36[] = { 'e' }; +static const symbol s_37[] = { 'i' }; +static const symbol s_38[] = { 0xC3, 0xA7 }; +static const symbol s_39[] = { 'c' }; + +static int r_prelude(struct SN_env * z) { /* forwardmode */ + while(1) { /* repeat, line 38 */ + int c1 = z->c; + while(1) { /* goto, line 38 */ + int c2 = z->c; + { int c3 = z->c; /* or, line 44 */ + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3; /* grouping v, line 40 */ + z->bra = z->c; /* [, line 40 */ + { int c4 = z->c; /* or, line 40 */ + if (z->c == z->l || z->p[z->c] != 'u') goto lab5; /* literal, line 40 */ + z->c++; + z->ket = z->c; /* ], line 40 */ + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5; /* grouping v, line 40 */ + { int ret = slice_from_s(z, 1, s_0); /* <-, line 40 */ + if (ret < 0) return ret; + } + goto lab4; + lab5: + z->c = c4; + if (z->c == z->l || z->p[z->c] != 'i') goto lab6; /* literal, line 41 */ + z->c++; + z->ket = z->c; /* ], line 41 */ + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6; /* grouping v, line 41 */ + { int ret = slice_from_s(z, 1, s_1); /* <-, line 41 */ + if (ret < 0) return ret; + } + goto lab4; + lab6: + z->c = c4; + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 42 */ + z->c++; + z->ket = z->c; /* ], line 42 */ + { int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */ + if (ret < 0) return ret; + } + } + lab4: + goto lab2; + lab3: + z->c = c3; + z->bra = z->c; /* [, line 45 */ + if (!(eq_s(z, 2, s_3))) goto lab7; /* literal, line 45 */ + z->ket = z->c; /* ], line 45 */ + { int ret = slice_from_s(z, 2, s_4); /* <-, line 45 */ + if (ret < 0) return ret; + } + goto lab2; + lab7: + z->c = c3; + z->bra = z->c; /* [, line 47 */ + if (!(eq_s(z, 2, s_5))) goto lab8; /* literal, line 47 */ + z->ket = z->c; /* ], line 47 */ + { int ret = slice_from_s(z, 2, s_6); /* <-, line 47 */ + if (ret < 0) return ret; + } + goto lab2; + lab8: + z->c = c3; + z->bra = z->c; /* [, line 49 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab9; /* literal, line 49 */ + z->c++; + z->ket = z->c; /* ], line 49 */ + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab9; /* grouping v, line 49 */ + { int ret = slice_from_s(z, 1, s_7); /* <-, line 49 */ + if (ret < 0) return ret; + } + goto lab2; + lab9: + z->c = c3; + if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 51 */ + z->c++; + z->bra = z->c; /* [, line 51 */ + if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 51 */ + z->c++; + z->ket = z->c; /* ], line 51 */ + { int ret = slice_from_s(z, 1, s_8); /* <-, line 51 */ + if (ret < 0) return ret; + } + } + lab2: + z->c = c2; + break; + lab1: + z->c = c2; + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* goto, line 38 */ + } + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $pV = <integer expression>, line 56 */ + z->I[1] = z->l; /* $p1 = <integer expression>, line 57 */ + z->I[2] = z->l; /* $p2 = <integer expression>, line 58 */ + { int c1 = z->c; /* do, line 60 */ + { int c2 = z->c; /* or, line 62 */ + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */ + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */ + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab2; + z->c = ret; /* next, line 61 */ + } + goto lab1; + lab2: + z->c = c2; + if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3; /* among, line 63 */ + if (!(find_among(z, a_0, 3))) goto lab3; + goto lab1; + lab3: + z->c = c2; + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 70 */ + } + { /* gopast */ /* grouping v, line 70 */ + int ret = out_grouping_U(z, g_v, 97, 251, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + } + lab1: + z->I[0] = z->c; /* setmark pV, line 71 */ + lab0: + z->c = c1; + } + { int c3 = z->c; /* do, line 73 */ + { /* gopast */ /* grouping v, line 74 */ + int ret = out_grouping_U(z, g_v, 97, 251, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + { /* gopast */ /* non v, line 74 */ + int ret = in_grouping_U(z, g_v, 97, 251, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + z->I[1] = z->c; /* setmark p1, line 74 */ + { /* gopast */ /* grouping v, line 75 */ + int ret = out_grouping_U(z, g_v, 97, 251, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + { /* gopast */ /* non v, line 75 */ + int ret = in_grouping_U(z, g_v, 97, 251, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + z->I[2] = z->c; /* setmark p2, line 75 */ + lab4: + z->c = c3; + } + return 1; +} + +static int r_postlude(struct SN_env * z) { /* forwardmode */ + int among_var; + while(1) { /* repeat, line 79 */ + int c1 = z->c; + z->bra = z->c; /* [, line 81 */ + if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else /* substring, line 81 */ + among_var = find_among(z, a_1, 7); + if (!(among_var)) goto lab0; + z->ket = z->c; /* ], line 81 */ + switch (among_var) { /* among, line 81 */ + case 1: + { int ret = slice_from_s(z, 1, s_9); /* <-, line 82 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_10); /* <-, line 83 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_11); /* <-, line 84 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 2, s_12); /* <-, line 85 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 2, s_13); /* <-, line 86 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_del(z); /* delete, line 87 */ + if (ret < 0) return ret; + } + break; + case 7: + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 88 */ + } + break; + } + continue; + lab0: + z->c = c1; + 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 94 */ + return 1; +} + +static int r_R1(struct SN_env * z) { /* backwardmode */ + if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 95 */ + return 1; +} + +static int r_R2(struct SN_env * z) { /* backwardmode */ + if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 96 */ + return 1; +} + +static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 99 */ + among_var = find_among_b(z, a_4, 43); /* substring, line 99 */ + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 99 */ + switch (among_var) { /* among, line 99 */ + case 1: + { int ret = r_R2(z); /* call R2, line 103 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 103 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = r_R2(z); /* call R2, line 106 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 106 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* try, line 107 */ + z->ket = z->c; /* [, line 107 */ + if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m1; goto lab0; } /* literal, line 107 */ + z->bra = z->c; /* ], line 107 */ + { int m2 = z->l - z->c; (void)m2; /* or, line 107 */ + { int ret = r_R2(z); /* call R2, line 107 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 107 */ + if (ret < 0) return ret; + } + goto lab1; + lab2: + z->c = z->l - m2; + { int ret = slice_from_s(z, 3, s_15); /* <-, line 107 */ + if (ret < 0) return ret; + } + } + lab1: + lab0: + ; + } + break; + case 3: + { int ret = r_R2(z); /* call R2, line 111 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_16); /* <-, line 111 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = r_R2(z); /* call R2, line 114 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 1, s_17); /* <-, line 114 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = r_R2(z); /* call R2, line 117 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_18); /* <-, line 117 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = r_RV(z); /* call RV, line 121 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 121 */ + if (ret < 0) return ret; + } + { int m3 = z->l - z->c; (void)m3; /* try, line 122 */ + z->ket = z->c; /* [, line 123 */ + among_var = find_among_b(z, a_2, 6); /* substring, line 123 */ + if (!(among_var)) { z->c = z->l - m3; goto lab3; } + z->bra = z->c; /* ], line 123 */ + switch (among_var) { /* among, line 123 */ + case 1: + { int ret = r_R2(z); /* call R2, line 124 */ + if (ret == 0) { z->c = z->l - m3; goto lab3; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 124 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 124 */ + if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m3; goto lab3; } /* literal, line 124 */ + z->bra = z->c; /* ], line 124 */ + { int ret = r_R2(z); /* call R2, line 124 */ + if (ret == 0) { z->c = z->l - m3; goto lab3; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 124 */ + if (ret < 0) return ret; + } + break; + case 2: + { int m4 = z->l - z->c; (void)m4; /* or, line 125 */ + { int ret = r_R2(z); /* call R2, line 125 */ + if (ret == 0) goto lab5; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 125 */ + if (ret < 0) return ret; + } + goto lab4; + lab5: + z->c = z->l - m4; + { int ret = r_R1(z); /* call R1, line 125 */ + if (ret == 0) { z->c = z->l - m3; goto lab3; } + if (ret < 0) return ret; + } + { int ret = slice_from_s(z, 3, s_20); /* <-, line 125 */ + if (ret < 0) return ret; + } + } + lab4: + break; + case 3: + { int ret = r_R2(z); /* call R2, line 127 */ + if (ret == 0) { z->c = z->l - m3; goto lab3; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 127 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = r_RV(z); /* call RV, line 129 */ + if (ret == 0) { z->c = z->l - m3; goto lab3; } + if (ret < 0) return ret; + } + { int ret = slice_from_s(z, 1, s_21); /* <-, line 129 */ + if (ret < 0) return ret; + } + break; + } + lab3: + ; + } + break; + case 7: + { 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; + } + { int m5 = z->l - z->c; (void)m5; /* try, line 137 */ + z->ket = z->c; /* [, line 138 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; } /* substring, line 138 */ + among_var = find_among_b(z, a_3, 3); + if (!(among_var)) { z->c = z->l - m5; goto lab6; } + z->bra = z->c; /* ], line 138 */ + switch (among_var) { /* among, line 138 */ + case 1: + { int m6 = z->l - z->c; (void)m6; /* or, line 139 */ + { int ret = r_R2(z); /* call R2, line 139 */ + if (ret == 0) goto lab8; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 139 */ + if (ret < 0) return ret; + } + goto lab7; + lab8: + z->c = z->l - m6; + { int ret = slice_from_s(z, 3, s_22); /* <-, line 139 */ + if (ret < 0) return ret; + } + } + lab7: + break; + case 2: + { int m7 = z->l - z->c; (void)m7; /* or, line 140 */ + { int ret = r_R2(z); /* call R2, line 140 */ + if (ret == 0) goto lab10; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 140 */ + if (ret < 0) return ret; + } + goto lab9; + lab10: + z->c = z->l - m7; + { int ret = slice_from_s(z, 3, s_23); /* <-, line 140 */ + if (ret < 0) return ret; + } + } + lab9: + break; + case 3: + { int ret = r_R2(z); /* call R2, line 141 */ + if (ret == 0) { z->c = z->l - m5; goto lab6; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 141 */ + if (ret < 0) return ret; + } + break; + } + lab6: + ; + } + break; + case 8: + { int ret = r_R2(z); /* call R2, line 148 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 148 */ + if (ret < 0) return ret; + } + { int m8 = z->l - z->c; (void)m8; /* try, line 149 */ + z->ket = z->c; /* [, line 149 */ + if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */ + z->bra = z->c; /* ], line 149 */ + { int ret = r_R2(z); /* call R2, line 149 */ + if (ret == 0) { z->c = z->l - m8; goto lab11; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 149 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 149 */ + if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */ + z->bra = z->c; /* ], line 149 */ + { int m9 = z->l - z->c; (void)m9; /* or, line 149 */ + { int ret = r_R2(z); /* call R2, line 149 */ + if (ret == 0) goto lab13; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 149 */ + if (ret < 0) return ret; + } + goto lab12; + lab13: + z->c = z->l - m9; + { int ret = slice_from_s(z, 3, s_26); /* <-, line 149 */ + if (ret < 0) return ret; + } + } + lab12: + lab11: + ; + } + break; + case 9: + { int ret = slice_from_s(z, 3, s_27); /* <-, line 151 */ + if (ret < 0) return ret; + } + break; + case 10: + { int ret = r_R1(z); /* call R1, line 152 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 2, s_28); /* <-, line 152 */ + if (ret < 0) return ret; + } + break; + case 11: + { int m10 = z->l - z->c; (void)m10; /* or, line 154 */ + { int ret = r_R2(z); /* call R2, line 154 */ + if (ret == 0) goto lab15; + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 154 */ + if (ret < 0) return ret; + } + goto lab14; + lab15: + z->c = z->l - m10; + { int ret = r_R1(z); /* call R1, line 154 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_29); /* <-, line 154 */ + if (ret < 0) return ret; + } + } + lab14: + break; + case 12: + { int ret = r_R1(z); /* call R1, line 157 */ + if (ret <= 0) return ret; + } + if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0; /* non v, line 157 */ + { int ret = slice_del(z); /* delete, line 157 */ + if (ret < 0) return ret; + } + break; + case 13: + { int ret = r_RV(z); /* call RV, line 162 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_30); /* <-, line 162 */ + if (ret < 0) return ret; + } + return 0; /* fail, line 162 */ + break; + case 14: + { int ret = r_RV(z); /* call RV, line 163 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_31); /* <-, line 163 */ + if (ret < 0) return ret; + } + return 0; /* fail, line 163 */ + break; + case 15: + { int m_test11 = z->l - z->c; /* test, line 165 */ + if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 165 */ + { int ret = r_RV(z); /* call RV, line 165 */ + if (ret <= 0) return ret; + } + z->c = z->l - m_test11; + } + { int ret = slice_del(z); /* delete, line 165 */ + if (ret < 0) return ret; + } + return 0; /* fail, line 165 */ + break; + } + return 1; +} + +static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 170 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 171 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 171 */ + if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 171 */ + { int m2 = z->l - z->c; (void)m2; /* not, line 177 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0; /* literal, line 177 */ + z->c--; + { z->lb = mlimit1; return 0; } + lab0: + z->c = z->l - m2; + } + if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 177 */ + { int ret = slice_del(z); /* delete, line 177 */ + if (ret < 0) return ret; + } + z->lb = mlimit1; + } + return 1; +} + +static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 181 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 182 */ + among_var = find_among_b(z, a_6, 38); /* substring, line 182 */ + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 182 */ + switch (among_var) { /* among, line 182 */ + case 1: + { int ret = r_R2(z); /* call R2, line 184 */ + if (ret == 0) { z->lb = mlimit1; return 0; } + if (ret < 0) return ret; + } + { int ret = slice_del(z); /* delete, line 184 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 192 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 197 */ + if (ret < 0) return ret; + } + { int m2 = z->l - z->c; (void)m2; /* try, line 198 */ + z->ket = z->c; /* [, line 198 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 198 */ + z->c--; + z->bra = z->c; /* ], line 198 */ + { int ret = slice_del(z); /* delete, line 198 */ + if (ret < 0) return ret; + } + lab0: + ; + } + break; + } + z->lb = mlimit1; + } + return 1; +} + +static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + { int m1 = z->l - z->c; (void)m1; /* try, line 206 */ + z->ket = z->c; /* [, line 206 */ + if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 206 */ + z->c--; + z->bra = z->c; /* ], line 206 */ + { int m_test2 = z->l - z->c; /* test, line 206 */ + { int m3 = z->l - z->c; (void)m3; /* or, line 206 */ + if (!(eq_s_b(z, 2, s_32))) goto lab2; /* literal, line 206 */ + goto lab1; + lab2: + z->c = z->l - m3; + if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 206 */ + } + lab1: + z->c = z->l - m_test2; + } + { int ret = slice_del(z); /* delete, line 206 */ + if (ret < 0) return ret; + } + lab0: + ; + } + + { int mlimit4; /* setlimit, line 207 */ + if (z->c < z->I[0]) return 0; + mlimit4 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 208 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; } /* substring, line 208 */ + among_var = find_among_b(z, a_7, 6); + if (!(among_var)) { z->lb = mlimit4; return 0; } + z->bra = z->c; /* ], line 208 */ + switch (among_var) { /* among, line 208 */ + case 1: + { int ret = r_R2(z); /* call R2, line 209 */ + if (ret == 0) { z->lb = mlimit4; return 0; } + if (ret < 0) return ret; + } + { int m5 = z->l - z->c; (void)m5; /* or, line 209 */ + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4; /* literal, line 209 */ + z->c--; + goto lab3; + lab4: + z->c = z->l - m5; + if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; } /* literal, line 209 */ + z->c--; + } + lab3: + { int ret = slice_del(z); /* delete, line 209 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_33); /* <-, line 211 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 212 */ + if (ret < 0) return ret; + } + break; + } + z->lb = mlimit4; + } + return 1; +} + +static int r_un_double(struct SN_env * z) { /* backwardmode */ + { int m_test1 = z->l - z->c; /* test, line 218 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 218 */ + if (!(find_among_b(z, a_8, 5))) return 0; + z->c = z->l - m_test1; + } + z->ket = z->c; /* [, line 218 */ + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 218 */ + } + z->bra = z->c; /* ], line 218 */ + { int ret = slice_del(z); /* delete, line 218 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_un_accent(struct SN_env * z) { /* backwardmode */ + { int i = 1; + while(1) { /* atleast, line 222 */ + if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 222 */ + i--; + continue; + lab0: + break; + } + if (i > 0) return 0; + } + z->ket = z->c; /* [, line 223 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 223 */ + if (!(eq_s_b(z, 2, s_34))) goto lab2; /* literal, line 223 */ + goto lab1; + lab2: + z->c = z->l - m1; + if (!(eq_s_b(z, 2, s_35))) return 0; /* literal, line 223 */ + } +lab1: + z->bra = z->c; /* ], line 223 */ + { int ret = slice_from_s(z, 1, s_36); /* <-, line 223 */ + if (ret < 0) return ret; + } + return 1; +} + +extern int french_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 229 */ + { int ret = r_prelude(z); /* call prelude, line 229 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + /* do, line 230 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 230 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } +lab1: + z->lb = z->c; z->c = z->l; /* backwards, line 231 */ + + { int m2 = z->l - z->c; (void)m2; /* do, line 233 */ + { int m3 = z->l - z->c; (void)m3; /* or, line 243 */ + { int m4 = z->l - z->c; (void)m4; /* and, line 239 */ + { int m5 = z->l - z->c; (void)m5; /* or, line 235 */ + { int ret = r_standard_suffix(z); /* call standard_suffix, line 235 */ + if (ret == 0) goto lab6; + if (ret < 0) return ret; + } + goto lab5; + lab6: + z->c = z->l - m5; + { int ret = r_i_verb_suffix(z); /* call i_verb_suffix, line 236 */ + if (ret == 0) goto lab7; + if (ret < 0) return ret; + } + goto lab5; + lab7: + z->c = z->l - m5; + { int ret = r_verb_suffix(z); /* call verb_suffix, line 237 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + } + lab5: + z->c = z->l - m4; + { int m6 = z->l - z->c; (void)m6; /* try, line 240 */ + z->ket = z->c; /* [, line 240 */ + { int m7 = z->l - z->c; (void)m7; /* or, line 240 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab10; /* literal, line 240 */ + z->c--; + z->bra = z->c; /* ], line 240 */ + { int ret = slice_from_s(z, 1, s_37); /* <-, line 240 */ + if (ret < 0) return ret; + } + goto lab9; + lab10: + z->c = z->l - m7; + if (!(eq_s_b(z, 2, s_38))) { z->c = z->l - m6; goto lab8; } /* literal, line 241 */ + z->bra = z->c; /* ], line 241 */ + { int ret = slice_from_s(z, 1, s_39); /* <-, line 241 */ + if (ret < 0) return ret; + } + } + lab9: + lab8: + ; + } + } + goto lab3; + lab4: + z->c = z->l - m3; + { int ret = r_residual_suffix(z); /* call residual_suffix, line 244 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + } + lab3: + lab2: + z->c = z->l - m2; + } + { int m8 = z->l - z->c; (void)m8; /* do, line 249 */ + { int ret = r_un_double(z); /* call un_double, line 249 */ + if (ret == 0) goto lab11; + if (ret < 0) return ret; + } + lab11: + z->c = z->l - m8; + } + { int m9 = z->l - z->c; (void)m9; /* do, line 250 */ + { int ret = r_un_accent(z); /* call un_accent, line 250 */ + if (ret == 0) goto lab12; + if (ret < 0) return ret; + } + lab12: + z->c = z->l - m9; + } + z->c = z->lb; + { int c10 = z->c; /* do, line 252 */ + { int ret = r_postlude(z); /* call postlude, line 252 */ + if (ret == 0) goto lab13; + if (ret < 0) return ret; + } + lab13: + z->c = c10; + } + return 1; +} + +extern struct SN_env * french_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } + +extern void french_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_german.c b/src/backend/snowball/libstemmer/stem_UTF_8_german.c new file mode 100644 index 0000000..1a8b592 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_german.c @@ -0,0 +1,509 @@ +/* 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 german_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_standard_suffix(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * german_UTF_8_create_env(void); +extern void german_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[1] = { 'U' }; +static const symbol s_0_2[1] = { 'Y' }; +static const symbol s_0_3[2] = { 0xC3, 0xA4 }; +static const symbol s_0_4[2] = { 0xC3, 0xB6 }; +static const symbol s_0_5[2] = { 0xC3, 0xBC }; + +static const struct among a_0[6] = +{ +/* 0 */ { 0, 0, -1, 5, 0}, +/* 1 */ { 1, s_0_1, 0, 2, 0}, +/* 2 */ { 1, s_0_2, 0, 1, 0}, +/* 3 */ { 2, s_0_3, 0, 3, 0}, +/* 4 */ { 2, s_0_4, 0, 4, 0}, +/* 5 */ { 2, s_0_5, 0, 2, 0} +}; + +static const symbol s_1_0[1] = { 'e' }; +static const symbol s_1_1[2] = { 'e', 'm' }; +static const symbol s_1_2[2] = { 'e', 'n' }; +static const symbol s_1_3[3] = { 'e', 'r', 'n' }; +static const symbol s_1_4[2] = { 'e', 'r' }; +static const symbol s_1_5[1] = { 's' }; +static const symbol s_1_6[2] = { 'e', 's' }; + +static const struct among a_1[7] = +{ +/* 0 */ { 1, s_1_0, -1, 2, 0}, +/* 1 */ { 2, s_1_1, -1, 1, 0}, +/* 2 */ { 2, s_1_2, -1, 2, 0}, +/* 3 */ { 3, s_1_3, -1, 1, 0}, +/* 4 */ { 2, s_1_4, -1, 1, 0}, +/* 5 */ { 1, s_1_5, -1, 3, 0}, +/* 6 */ { 2, s_1_6, 5, 2, 0} +}; + +static const symbol s_2_0[2] = { 'e', 'n' }; +static const symbol s_2_1[2] = { 'e', 'r' }; +static const symbol s_2_2[2] = { 's', 't' }; +static const symbol s_2_3[3] = { 'e', 's', 't' }; + +static const struct among a_2[4] = +{ +/* 0 */ { 2, s_2_0, -1, 1, 0}, +/* 1 */ { 2, s_2_1, -1, 1, 0}, +/* 2 */ { 2, s_2_2, -1, 2, 0}, +/* 3 */ { 3, s_2_3, 2, 1, 0} +}; + +static const symbol s_3_0[2] = { 'i', 'g' }; +static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' }; + +static const struct among a_3[2] = +{ +/* 0 */ { 2, s_3_0, -1, 1, 0}, +/* 1 */ { 4, s_3_1, -1, 1, 0} +}; + +static const symbol s_4_0[3] = { 'e', 'n', 'd' }; +static const symbol s_4_1[2] = { 'i', 'g' }; +static const symbol s_4_2[3] = { 'u', 'n', 'g' }; +static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' }; +static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' }; +static const symbol s_4_5[2] = { 'i', 'k' }; +static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' }; +static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' }; + +static const struct among a_4[8] = +{ +/* 0 */ { 3, s_4_0, -1, 1, 0}, +/* 1 */ { 2, s_4_1, -1, 2, 0}, +/* 2 */ { 3, s_4_2, -1, 1, 0}, +/* 3 */ { 4, s_4_3, -1, 3, 0}, +/* 4 */ { 4, s_4_4, -1, 2, 0}, +/* 5 */ { 2, s_4_5, -1, 2, 0}, +/* 6 */ { 4, s_4_6, -1, 3, 0}, +/* 7 */ { 4, s_4_7, -1, 4, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 }; + +static const unsigned char g_s_ending[] = { 117, 30, 5 }; + +static const unsigned char g_st_ending[] = { 117, 30, 4 }; + +static const symbol s_0[] = { 0xC3, 0x9F }; +static const symbol s_1[] = { 's', 's' }; +static const symbol s_2[] = { 'U' }; +static const symbol s_3[] = { 'Y' }; +static const symbol s_4[] = { 'y' }; +static const symbol s_5[] = { 'u' }; +static const symbol s_6[] = { 'a' }; +static const symbol s_7[] = { 'o' }; +static const symbol s_8[] = { 'n', 'i', 's' }; +static const symbol s_9[] = { 'i', 'g' }; +static const symbol s_10[] = { 'e', 'r' }; +static const symbol s_11[] = { 'e', 'n' }; + +static 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 = c3; + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 38 */ + } + } + lab1: + continue; + lab0: + z->c = c2; + break; + } + z->c = c_test1; + } + 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 = 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 = c5; + break; + lab4: + 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 41 */ + } + } + continue; + lab3: + z->c = c4; + break; + } + return 1; +} + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 49 */ + z->I[1] = z->l; /* $p2 = <integer expression>, line 50 */ + { int c_test1 = z->c; /* test, line 52 */ + { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 52 */ + if (ret < 0) return 0; + z->c = ret; + } + z->I[2] = z->c; /* setmark x, line 52 */ + z->c = c_test1; + } + { /* gopast */ /* grouping v, line 54 */ + int ret = out_grouping_U(z, g_v, 97, 252, 1); + if (ret < 0) return 0; + z->c += ret; + } + { /* gopast */ /* non v, line 54 */ + int ret = in_grouping_U(z, g_v, 97, 252, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 54 */ + /* try, line 55 */ + if (!(z->I[0] < z->I[2])) goto lab0; /* $(<integer expression> < <integer expression>), line 55 */ + z->I[0] = z->I[2]; /* $p1 = <integer expression>, line 55 */ +lab0: + { /* gopast */ /* grouping v, line 56 */ + int ret = out_grouping_U(z, g_v, 97, 252, 1); + if (ret < 0) return 0; + z->c += ret; + } + { /* gopast */ /* non v, line 56 */ + int ret = in_grouping_U(z, g_v, 97, 252, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[1] = z->c; /* setmark p2, line 56 */ + return 1; +} + +static int r_postlude(struct SN_env * z) { /* forwardmode */ + int among_var; + while(1) { /* repeat, line 60 */ + int c1 = z->c; + 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 62 */ + switch (among_var) { /* among, line 62 */ + case 1: + { 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_5); /* <-, line 64 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_7); /* <-, line 66 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 68 */ + } + break; + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +static int r_R1(struct SN_env * z) { /* backwardmode */ + if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 75 */ + return 1; +} + +static int r_R2(struct SN_env * z) { /* backwardmode */ + if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 76 */ + return 1; +} + +static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + { int m1 = z->l - z->c; (void)m1; /* do, line 79 */ + z->ket = z->c; /* [, line 80 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 80 */ + among_var = find_among_b(z, a_1, 7); + if (!(among_var)) goto lab0; + z->bra = z->c; /* ], line 80 */ + { int ret = r_R1(z); /* call R1, line 80 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + switch (among_var) { /* among, line 80 */ + case 1: + { int ret = slice_del(z); /* delete, line 82 */ + if (ret < 0) return ret; + } + break; + case 2: + { 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; + } + lab0: + z->c = z->l - m1; + } + { int m3 = z->l - z->c; (void)m3; /* do, line 93 */ + z->ket = z->c; /* [, line 94 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 94 */ + among_var = find_among_b(z, a_2, 4); + if (!(among_var)) goto lab2; + z->bra = z->c; /* ], line 94 */ + { int ret = r_R1(z); /* call R1, line 94 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + switch (among_var) { /* among, line 94 */ + case 1: + { int ret = slice_del(z); /* delete, line 96 */ + if (ret < 0) return ret; + } + break; + case 2: + if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab2; /* grouping st_ending, line 99 */ + { int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 3); /* hop, line 99 */ + if (ret < 0) goto lab2; + z->c = ret; + } + { int ret = slice_del(z); /* delete, line 99 */ + if (ret < 0) return ret; + } + 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) { /* 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 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 136 */ + + /* 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 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 = c3; + } + return 1; +} + +extern struct SN_env * german_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } + +extern void german_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_greek.c b/src/backend/snowball/libstemmer/stem_UTF_8_greek.c new file mode 100644 index 0000000..6566d9c --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_greek.c @@ -0,0 +1,4199 @@ +/* This file was generated automatically by the Snowball to ISO C compiler */ +/* http://snowballstem.org/ */ + +#include "header.h" + +static int r_step7(struct SN_env * z); +static int r_step6(struct SN_env * z); +static int r_step5m(struct SN_env * z); +static int r_step5l(struct SN_env * z); +static int r_step5k(struct SN_env * z); +static int r_step5j(struct SN_env * z); +static int r_step5i(struct SN_env * z); +static int r_step5h(struct SN_env * z); +static int r_step5g(struct SN_env * z); +static int r_step5f(struct SN_env * z); +static int r_step5e(struct SN_env * z); +static int r_step5d(struct SN_env * z); +static int r_step5c(struct SN_env * z); +static int r_step5b(struct SN_env * z); +static int r_step5a(struct SN_env * z); +static int r_step4(struct SN_env * z); +static int r_step3(struct SN_env * z); +static int r_step2d(struct SN_env * z); +static int r_step2c(struct SN_env * z); +static int r_step2b(struct SN_env * z); +static int r_step2a(struct SN_env * z); +static int r_step1(struct SN_env * z); +static int r_steps10(struct SN_env * z); +static int r_steps9(struct SN_env * z); +static int r_steps8(struct SN_env * z); +static int r_steps7(struct SN_env * z); +static int r_steps6(struct SN_env * z); +static int r_steps5(struct SN_env * z); +static int r_steps4(struct SN_env * z); +static int r_steps3(struct SN_env * z); +static int r_steps2(struct SN_env * z); +static int r_steps1(struct SN_env * z); +static int r_has_min_length(struct SN_env * z); +static int r_tolower(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif +extern int greek_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * greek_UTF_8_create_env(void); +extern void greek_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[2] = { 0xCF, 0x82 }; +static const symbol s_0_2[2] = { 0xCE, 0x86 }; +static const symbol s_0_3[2] = { 0xCE, 0x88 }; +static const symbol s_0_4[2] = { 0xCE, 0x89 }; +static const symbol s_0_5[2] = { 0xCE, 0x8A }; +static const symbol s_0_6[2] = { 0xCF, 0x8A }; +static const symbol s_0_7[2] = { 0xCF, 0x8B }; +static const symbol s_0_8[2] = { 0xCE, 0x8C }; +static const symbol s_0_9[2] = { 0xCF, 0x8C }; +static const symbol s_0_10[2] = { 0xCF, 0x8D }; +static const symbol s_0_11[2] = { 0xCE, 0x8E }; +static const symbol s_0_12[2] = { 0xCF, 0x8E }; +static const symbol s_0_13[2] = { 0xCE, 0x8F }; +static const symbol s_0_14[2] = { 0xCE, 0x90 }; +static const symbol s_0_15[2] = { 0xCE, 0x91 }; +static const symbol s_0_16[2] = { 0xCE, 0x92 }; +static const symbol s_0_17[2] = { 0xCE, 0x93 }; +static const symbol s_0_18[2] = { 0xCE, 0x94 }; +static const symbol s_0_19[2] = { 0xCE, 0x95 }; +static const symbol s_0_20[2] = { 0xCE, 0x96 }; +static const symbol s_0_21[2] = { 0xCE, 0x97 }; +static const symbol s_0_22[2] = { 0xCE, 0x98 }; +static const symbol s_0_23[2] = { 0xCE, 0x99 }; +static const symbol s_0_24[2] = { 0xCE, 0x9A }; +static const symbol s_0_25[2] = { 0xCE, 0x9B }; +static const symbol s_0_26[2] = { 0xCE, 0x9C }; +static const symbol s_0_27[2] = { 0xCE, 0x9D }; +static const symbol s_0_28[2] = { 0xCE, 0x9E }; +static const symbol s_0_29[2] = { 0xCE, 0x9F }; +static const symbol s_0_30[2] = { 0xCE, 0xA0 }; +static const symbol s_0_31[2] = { 0xCE, 0xA1 }; +static const symbol s_0_32[2] = { 0xCE, 0xA3 }; +static const symbol s_0_33[2] = { 0xCE, 0xA4 }; +static const symbol s_0_34[2] = { 0xCE, 0xA5 }; +static const symbol s_0_35[2] = { 0xCE, 0xA6 }; +static const symbol s_0_36[2] = { 0xCE, 0xA7 }; +static const symbol s_0_37[2] = { 0xCE, 0xA8 }; +static const symbol s_0_38[2] = { 0xCE, 0xA9 }; +static const symbol s_0_39[2] = { 0xCE, 0xAA }; +static const symbol s_0_40[2] = { 0xCE, 0xAB }; +static const symbol s_0_41[2] = { 0xCE, 0xAC }; +static const symbol s_0_42[2] = { 0xCE, 0xAD }; +static const symbol s_0_43[2] = { 0xCE, 0xAE }; +static const symbol s_0_44[2] = { 0xCE, 0xAF }; +static const symbol s_0_45[2] = { 0xCE, 0xB0 }; + +static const struct among a_0[46] = +{ +/* 0 */ { 0, 0, -1, 25, 0}, +/* 1 */ { 2, s_0_1, 0, 18, 0}, +/* 2 */ { 2, s_0_2, 0, 1, 0}, +/* 3 */ { 2, s_0_3, 0, 5, 0}, +/* 4 */ { 2, s_0_4, 0, 7, 0}, +/* 5 */ { 2, s_0_5, 0, 9, 0}, +/* 6 */ { 2, s_0_6, 0, 7, 0}, +/* 7 */ { 2, s_0_7, 0, 20, 0}, +/* 8 */ { 2, s_0_8, 0, 15, 0}, +/* 9 */ { 2, s_0_9, 0, 15, 0}, +/* 10 */ { 2, s_0_10, 0, 20, 0}, +/* 11 */ { 2, s_0_11, 0, 20, 0}, +/* 12 */ { 2, s_0_12, 0, 24, 0}, +/* 13 */ { 2, s_0_13, 0, 24, 0}, +/* 14 */ { 2, s_0_14, 0, 7, 0}, +/* 15 */ { 2, s_0_15, 0, 1, 0}, +/* 16 */ { 2, s_0_16, 0, 2, 0}, +/* 17 */ { 2, s_0_17, 0, 3, 0}, +/* 18 */ { 2, s_0_18, 0, 4, 0}, +/* 19 */ { 2, s_0_19, 0, 5, 0}, +/* 20 */ { 2, s_0_20, 0, 6, 0}, +/* 21 */ { 2, s_0_21, 0, 7, 0}, +/* 22 */ { 2, s_0_22, 0, 8, 0}, +/* 23 */ { 2, s_0_23, 0, 9, 0}, +/* 24 */ { 2, s_0_24, 0, 10, 0}, +/* 25 */ { 2, s_0_25, 0, 11, 0}, +/* 26 */ { 2, s_0_26, 0, 12, 0}, +/* 27 */ { 2, s_0_27, 0, 13, 0}, +/* 28 */ { 2, s_0_28, 0, 14, 0}, +/* 29 */ { 2, s_0_29, 0, 15, 0}, +/* 30 */ { 2, s_0_30, 0, 16, 0}, +/* 31 */ { 2, s_0_31, 0, 17, 0}, +/* 32 */ { 2, s_0_32, 0, 18, 0}, +/* 33 */ { 2, s_0_33, 0, 19, 0}, +/* 34 */ { 2, s_0_34, 0, 20, 0}, +/* 35 */ { 2, s_0_35, 0, 21, 0}, +/* 36 */ { 2, s_0_36, 0, 22, 0}, +/* 37 */ { 2, s_0_37, 0, 23, 0}, +/* 38 */ { 2, s_0_38, 0, 24, 0}, +/* 39 */ { 2, s_0_39, 0, 9, 0}, +/* 40 */ { 2, s_0_40, 0, 20, 0}, +/* 41 */ { 2, s_0_41, 0, 1, 0}, +/* 42 */ { 2, s_0_42, 0, 5, 0}, +/* 43 */ { 2, s_0_43, 0, 7, 0}, +/* 44 */ { 2, s_0_44, 0, 9, 0}, +/* 45 */ { 2, s_0_45, 0, 20, 0} +}; + +static const symbol s_1_0[16] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCF, 0x83 }; +static const symbol s_1_1[6] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x83 }; +static const symbol s_1_2[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83 }; +static const symbol s_1_3[10] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83 }; +static const symbol s_1_4[10] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x83 }; +static const symbol s_1_5[20] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_1_6[10] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_1_7[14] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_1_8[14] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_1_9[14] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_1_10[18] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_1_11[14] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_1_12[12] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_1_13[14] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_1_14[12] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_1_15[16] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_1_16[14] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_1_17[18] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xB1 }; +static const symbol s_1_18[8] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xB1 }; +static const symbol s_1_19[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 }; +static const symbol s_1_20[12] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 }; +static const symbol s_1_21[12] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 }; +static const symbol s_1_22[16] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1 }; +static const symbol s_1_23[10] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_1_24[12] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_1_25[10] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_1_26[14] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_1_27[12] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_1_28[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB7 }; +static const symbol s_1_29[20] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_1_30[10] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_1_31[14] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_1_32[14] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_1_33[14] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_1_34[18] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_1_35[12] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_1_36[14] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_1_37[12] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_1_38[16] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_1_39[14] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD }; + +static const struct among a_1[40] = +{ +/* 0 */ { 16, s_1_0, -1, 10, 0}, +/* 1 */ { 6, s_1_1, -1, 9, 0}, +/* 2 */ { 10, s_1_2, -1, 7, 0}, +/* 3 */ { 10, s_1_3, -1, 8, 0}, +/* 4 */ { 10, s_1_4, -1, 6, 0}, +/* 5 */ { 20, s_1_5, -1, 10, 0}, +/* 6 */ { 10, s_1_6, -1, 9, 0}, +/* 7 */ { 14, s_1_7, -1, 7, 0}, +/* 8 */ { 14, s_1_8, -1, 8, 0}, +/* 9 */ { 14, s_1_9, -1, 6, 0}, +/* 10 */ { 18, s_1_10, -1, 11, 0}, +/* 11 */ { 14, s_1_11, -1, 11, 0}, +/* 12 */ { 12, s_1_12, -1, 1, 0}, +/* 13 */ { 14, s_1_13, -1, 2, 0}, +/* 14 */ { 12, s_1_14, -1, 4, 0}, +/* 15 */ { 16, s_1_15, -1, 5, 0}, +/* 16 */ { 14, s_1_16, -1, 3, 0}, +/* 17 */ { 18, s_1_17, -1, 10, 0}, +/* 18 */ { 8, s_1_18, -1, 9, 0}, +/* 19 */ { 12, s_1_19, -1, 7, 0}, +/* 20 */ { 12, s_1_20, -1, 8, 0}, +/* 21 */ { 12, s_1_21, -1, 6, 0}, +/* 22 */ { 16, s_1_22, -1, 11, 0}, +/* 23 */ { 10, s_1_23, -1, 1, 0}, +/* 24 */ { 12, s_1_24, -1, 2, 0}, +/* 25 */ { 10, s_1_25, -1, 4, 0}, +/* 26 */ { 14, s_1_26, -1, 5, 0}, +/* 27 */ { 12, s_1_27, -1, 3, 0}, +/* 28 */ { 12, s_1_28, -1, 7, 0}, +/* 29 */ { 20, s_1_29, -1, 10, 0}, +/* 30 */ { 10, s_1_30, -1, 9, 0}, +/* 31 */ { 14, s_1_31, -1, 7, 0}, +/* 32 */ { 14, s_1_32, -1, 8, 0}, +/* 33 */ { 14, s_1_33, -1, 6, 0}, +/* 34 */ { 18, s_1_34, -1, 11, 0}, +/* 35 */ { 12, s_1_35, -1, 1, 0}, +/* 36 */ { 14, s_1_36, -1, 2, 0}, +/* 37 */ { 12, s_1_37, -1, 4, 0}, +/* 38 */ { 16, s_1_38, -1, 5, 0}, +/* 39 */ { 14, s_1_39, -1, 3, 0} +}; + +static const symbol s_2_0[4] = { 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_2_1[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_2_2[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_2_3[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_2_4[12] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_2_5[8] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_2_6[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_2_7[8] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF }; +static const symbol s_2_8[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF }; + +static const struct among a_2[9] = +{ +/* 0 */ { 4, s_2_0, -1, 1, 0}, +/* 1 */ { 12, s_2_1, 0, 1, 0}, +/* 2 */ { 6, s_2_2, 0, 1, 0}, +/* 3 */ { 12, s_2_3, 0, 1, 0}, +/* 4 */ { 12, s_2_4, 0, 1, 0}, +/* 5 */ { 8, s_2_5, 0, 1, 0}, +/* 6 */ { 8, s_2_6, -1, 1, 0}, +/* 7 */ { 8, s_2_7, -1, 1, 0}, +/* 8 */ { 14, s_2_8, 7, 1, 0} +}; + +static const symbol s_3_0[2] = { 0xCF, 0x80 }; +static const symbol s_3_1[6] = { 0xCE, 0xB9, 0xCE, 0xBC, 0xCF, 0x80 }; +static const symbol s_3_2[2] = { 0xCF, 0x81 }; +static const symbol s_3_3[4] = { 0xCF, 0x80, 0xCF, 0x81 }; +static const symbol s_3_4[6] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCF, 0x81 }; +static const symbol s_3_5[6] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x81 }; +static const symbol s_3_6[12] = { 0xCE, 0xB3, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBA, 0xCF, 0x85, 0xCF, 0x81 }; +static const symbol s_3_7[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCF, 0x81 }; +static const symbol s_3_8[10] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_3_9[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_3_10[6] = { 0xCE, 0xB3, 0xCE, 0xBA, 0xCF, 0x81 }; +static const symbol s_3_11[14] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x81 }; +static const symbol s_3_12[12] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xB2, 0xCE, 0xBF, 0xCF, 0x81 }; +static const symbol s_3_13[12] = { 0xCE, 0xB3, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81 }; +static const symbol s_3_14[6] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_3_15[2] = { 0xCE, 0xB2 }; +static const symbol s_3_16[12] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x85, 0xCF, 0x81, 0xCE, 0xB9 }; +static const symbol s_3_17[8] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA }; +static const symbol s_3_18[8] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA }; +static const symbol s_3_19[2] = { 0xCE, 0xBB }; +static const symbol s_3_20[2] = { 0xCE, 0xBC }; +static const symbol s_3_21[8] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xBD }; + +static const struct among a_3[22] = +{ +/* 0 */ { 2, s_3_0, -1, 1, 0}, +/* 1 */ { 6, s_3_1, 0, 1, 0}, +/* 2 */ { 2, s_3_2, -1, 1, 0}, +/* 3 */ { 4, s_3_3, 2, 1, 0}, +/* 4 */ { 6, s_3_4, 3, 1, 0}, +/* 5 */ { 6, s_3_5, 2, 1, 0}, +/* 6 */ { 12, s_3_6, 2, 1, 0}, +/* 7 */ { 10, s_3_7, 2, 1, 0}, +/* 8 */ { 10, s_3_8, 2, 1, 0}, +/* 9 */ { 6, s_3_9, 2, 1, 0}, +/* 10 */ { 6, s_3_10, 2, 1, 0}, +/* 11 */ { 14, s_3_11, 2, 1, 0}, +/* 12 */ { 12, s_3_12, 2, 1, 0}, +/* 13 */ { 12, s_3_13, 2, 1, 0}, +/* 14 */ { 6, s_3_14, -1, 1, 0}, +/* 15 */ { 2, s_3_15, -1, 1, 0}, +/* 16 */ { 12, s_3_16, -1, 1, 0}, +/* 17 */ { 8, s_3_17, -1, 1, 0}, +/* 18 */ { 8, s_3_18, -1, 1, 0}, +/* 19 */ { 2, s_3_19, -1, 1, 0}, +/* 20 */ { 2, s_3_20, -1, 1, 0}, +/* 21 */ { 8, s_3_21, -1, 1, 0} +}; + +static const symbol s_4_0[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_4_1[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 }; +static const symbol s_4_2[6] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCF, 0x89 }; +static const symbol s_4_3[6] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1 }; +static const symbol s_4_4[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_4_5[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_4_6[6] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5 }; +static const symbol s_4_7[12] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_4_8[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_4_9[12] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_4_10[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_4_11[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCE, 0xB9 }; +static const symbol s_4_12[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_4_13[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD }; + +static const struct among a_4[14] = +{ +/* 0 */ { 8, s_4_0, -1, 1, 0}, +/* 1 */ { 10, s_4_1, -1, 1, 0}, +/* 2 */ { 6, s_4_2, -1, 1, 0}, +/* 3 */ { 6, s_4_3, -1, 1, 0}, +/* 4 */ { 10, s_4_4, -1, 1, 0}, +/* 5 */ { 10, s_4_5, -1, 1, 0}, +/* 6 */ { 6, s_4_6, -1, 1, 0}, +/* 7 */ { 12, s_4_7, -1, 1, 0}, +/* 8 */ { 10, s_4_8, -1, 1, 0}, +/* 9 */ { 12, s_4_9, -1, 1, 0}, +/* 10 */ { 10, s_4_10, -1, 1, 0}, +/* 11 */ { 8, s_4_11, -1, 1, 0}, +/* 12 */ { 10, s_4_12, -1, 1, 0}, +/* 13 */ { 8, s_4_13, -1, 1, 0} +}; + +static const symbol s_5_0[2] = { 0xCF, 0x83 }; +static const symbol s_5_1[2] = { 0xCF, 0x87 }; +static const symbol s_5_2[4] = { 0xCF, 0x85, 0xCF, 0x88 }; +static const symbol s_5_3[4] = { 0xCE, 0xB6, 0xCF, 0x89 }; +static const symbol s_5_4[4] = { 0xCE, 0xB2, 0xCE, 0xB9 }; +static const symbol s_5_5[4] = { 0xCE, 0xBB, 0xCE, 0xB9 }; +static const symbol s_5_6[4] = { 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_5_7[4] = { 0xCE, 0xB5, 0xCE, 0xBD }; + +static const struct among a_5[8] = +{ +/* 0 */ { 2, s_5_0, -1, 1, 0}, +/* 1 */ { 2, s_5_1, -1, 1, 0}, +/* 2 */ { 4, s_5_2, -1, 1, 0}, +/* 3 */ { 4, s_5_3, -1, 1, 0}, +/* 4 */ { 4, s_5_4, -1, 1, 0}, +/* 5 */ { 4, s_5_5, -1, 1, 0}, +/* 6 */ { 4, s_5_6, -1, 1, 0}, +/* 7 */ { 4, s_5_7, -1, 1, 0} +}; + +static const symbol s_6_0[12] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_6_1[10] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1 }; +static const symbol s_6_2[14] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_6_3[10] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5 }; +static const symbol s_6_4[14] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_6_5[14] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_6_6[12] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD }; + +static const struct among a_6[7] = +{ +/* 0 */ { 12, s_6_0, -1, 1, 0}, +/* 1 */ { 10, s_6_1, -1, 1, 0}, +/* 2 */ { 14, s_6_2, -1, 1, 0}, +/* 3 */ { 10, s_6_3, -1, 1, 0}, +/* 4 */ { 14, s_6_4, -1, 1, 0}, +/* 5 */ { 14, s_6_5, -1, 1, 0}, +/* 6 */ { 12, s_6_6, -1, 1, 0} +}; + +static const symbol s_7_0[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_7_1[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_7_2[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_7_3[12] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_7_4[8] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_7_5[14] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_7_6[12] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x87, 0xCE, 0xB1 }; +static const symbol s_7_7[4] = { 0xCF, 0x80, 0xCE, 0xB5 }; +static const symbol s_7_8[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 }; +static const symbol s_7_9[12] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 }; +static const symbol s_7_10[6] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB5 }; +static const symbol s_7_11[6] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_7_12[12] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_7_13[8] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_7_14[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_7_15[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_7_16[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_7_17[8] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF }; +static const symbol s_7_18[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF }; + +static const struct among a_7[19] = +{ +/* 0 */ { 12, s_7_0, -1, 1, 0}, +/* 1 */ { 6, s_7_1, -1, 1, 0}, +/* 2 */ { 12, s_7_2, -1, 1, 0}, +/* 3 */ { 12, s_7_3, -1, 1, 0}, +/* 4 */ { 8, s_7_4, -1, 1, 0}, +/* 5 */ { 14, s_7_5, -1, 1, 0}, +/* 6 */ { 12, s_7_6, -1, 1, 0}, +/* 7 */ { 4, s_7_7, -1, 1, 0}, +/* 8 */ { 6, s_7_8, 7, 1, 0}, +/* 9 */ { 12, s_7_9, 8, 1, 0}, +/* 10 */ { 6, s_7_10, -1, 1, 0}, +/* 11 */ { 6, s_7_11, -1, 1, 0}, +/* 12 */ { 12, s_7_12, 11, 1, 0}, +/* 13 */ { 8, s_7_13, 11, 1, 0}, +/* 14 */ { 12, s_7_14, 13, 1, 0}, +/* 15 */ { 12, s_7_15, 11, 1, 0}, +/* 16 */ { 8, s_7_16, -1, 1, 0}, +/* 17 */ { 8, s_7_17, -1, 1, 0}, +/* 18 */ { 14, s_7_18, 17, 1, 0} +}; + +static const symbol s_8_0[2] = { 0xCF, 0x80 }; +static const symbol s_8_1[6] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_8_2[16] = { 0xCE, 0xB4, 0xCE, 0xB7, 0xCE, 0xBC, 0xCE, 0xBF, 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_8_3[4] = { 0xCE, 0xB1, 0xCF, 0x86 }; +static const symbol s_8_4[18] = { 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB1, 0xCF, 0x86 }; +static const symbol s_8_5[4] = { 0xCE, 0xB3, 0xCE, 0xB5 }; +static const symbol s_8_6[6] = { 0xCE, 0xB3, 0xCE, 0xBA, 0xCE, 0xB5 }; +static const symbol s_8_7[4] = { 0xCE, 0xB3, 0xCE, 0xBA }; +static const symbol s_8_8[2] = { 0xCE, 0xBC }; +static const symbol s_8_9[12] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC }; +static const symbol s_8_10[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBC }; +static const symbol s_8_11[4] = { 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_8_12[6] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF }; + +static const struct among a_8[13] = +{ +/* 0 */ { 2, s_8_0, -1, 1, 0}, +/* 1 */ { 6, s_8_1, -1, 1, 0}, +/* 2 */ { 16, s_8_2, -1, 1, 0}, +/* 3 */ { 4, s_8_3, -1, 1, 0}, +/* 4 */ { 18, s_8_4, 3, 1, 0}, +/* 5 */ { 4, s_8_5, -1, 1, 0}, +/* 6 */ { 6, s_8_6, -1, 1, 0}, +/* 7 */ { 4, s_8_7, -1, 1, 0}, +/* 8 */ { 2, s_8_8, -1, 1, 0}, +/* 9 */ { 12, s_8_9, 8, 1, 0}, +/* 10 */ { 6, s_8_10, 8, 1, 0}, +/* 11 */ { 4, s_8_11, -1, 1, 0}, +/* 12 */ { 6, s_8_12, -1, 1, 0} +}; + +static const symbol s_9_0[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_9_1[6] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1 }; +static const symbol s_9_2[6] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5 }; +static const symbol s_9_3[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_9_4[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_9_5[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_9_6[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD }; + +static const struct among a_9[7] = +{ +/* 0 */ { 8, s_9_0, -1, 1, 0}, +/* 1 */ { 6, s_9_1, -1, 1, 0}, +/* 2 */ { 6, s_9_2, -1, 1, 0}, +/* 3 */ { 10, s_9_3, -1, 1, 0}, +/* 4 */ { 10, s_9_4, -1, 1, 0}, +/* 5 */ { 10, s_9_5, -1, 1, 0}, +/* 6 */ { 8, s_9_6, -1, 1, 0} +}; + +static const symbol s_10_0[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_10_1[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_10_2[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_10_3[12] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_10_4[8] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_10_5[14] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xB1 }; +static const symbol s_10_6[12] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x87, 0xCE, 0xB1 }; +static const symbol s_10_7[4] = { 0xCF, 0x80, 0xCE, 0xB5 }; +static const symbol s_10_8[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 }; +static const symbol s_10_9[12] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 }; +static const symbol s_10_10[6] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB5 }; +static const symbol s_10_11[6] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_10_12[12] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_10_13[8] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_10_14[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_10_15[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_10_16[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_10_17[8] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF }; +static const symbol s_10_18[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF }; + +static const struct among a_10[19] = +{ +/* 0 */ { 12, s_10_0, -1, 1, 0}, +/* 1 */ { 6, s_10_1, -1, 1, 0}, +/* 2 */ { 12, s_10_2, -1, 1, 0}, +/* 3 */ { 12, s_10_3, -1, 1, 0}, +/* 4 */ { 8, s_10_4, -1, 1, 0}, +/* 5 */ { 14, s_10_5, -1, 1, 0}, +/* 6 */ { 12, s_10_6, -1, 1, 0}, +/* 7 */ { 4, s_10_7, -1, 1, 0}, +/* 8 */ { 6, s_10_8, 7, 1, 0}, +/* 9 */ { 12, s_10_9, 8, 1, 0}, +/* 10 */ { 6, s_10_10, -1, 1, 0}, +/* 11 */ { 6, s_10_11, -1, 1, 0}, +/* 12 */ { 12, s_10_12, 11, 1, 0}, +/* 13 */ { 8, s_10_13, 11, 1, 0}, +/* 14 */ { 12, s_10_14, 13, 1, 0}, +/* 15 */ { 12, s_10_15, 11, 1, 0}, +/* 16 */ { 8, s_10_16, -1, 1, 0}, +/* 17 */ { 8, s_10_17, -1, 1, 0}, +/* 18 */ { 14, s_10_18, 17, 1, 0} +}; + +static const symbol s_11_0[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 }; +static const symbol s_11_1[6] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x89 }; +static const symbol s_11_2[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_11_3[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_11_4[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_11_5[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCE, 0xB9 }; +static const symbol s_11_6[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; + +static const struct among a_11[7] = +{ +/* 0 */ { 10, s_11_0, -1, 1, 0}, +/* 1 */ { 6, s_11_1, -1, 1, 0}, +/* 2 */ { 10, s_11_2, -1, 1, 0}, +/* 3 */ { 12, s_11_3, -1, 1, 0}, +/* 4 */ { 12, s_11_4, -1, 1, 0}, +/* 5 */ { 8, s_11_5, -1, 1, 0}, +/* 6 */ { 10, s_11_6, -1, 1, 0} +}; + +static const symbol s_12_0[4] = { 0xCF, 0x83, 0xCE, 0xB5 }; +static const symbol s_12_1[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB5 }; +static const symbol s_12_2[6] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_12_3[6] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_12_4[12] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_12_5[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_12_6[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF }; + +static const struct among a_12[7] = +{ +/* 0 */ { 4, s_12_0, -1, 1, 0}, +/* 1 */ { 6, s_12_1, 0, 1, 0}, +/* 2 */ { 6, s_12_2, -1, 1, 0}, +/* 3 */ { 6, s_12_3, -1, 1, 0}, +/* 4 */ { 12, s_12_4, 3, 1, 0}, +/* 5 */ { 8, s_12_5, -1, 1, 0}, +/* 6 */ { 14, s_12_6, -1, 1, 0} +}; + +static const symbol s_13_0[2] = { 0xCF, 0x80 }; +static const symbol s_13_1[6] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x80 }; +static const symbol s_13_2[4] = { 0xCE, 0xB1, 0xCF, 0x80 }; +static const symbol s_13_3[6] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80 }; +static const symbol s_13_4[6] = { 0xCE, 0xB3, 0xCF, 0x85, 0xCF, 0x81 }; +static const symbol s_13_5[4] = { 0xCF, 0x87, 0xCF, 0x81 }; +static const symbol s_13_6[6] = { 0xCF, 0x87, 0xCF, 0x89, 0xCF, 0x81 }; +static const symbol s_13_7[4] = { 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_13_8[6] = { 0xCE, 0xB1, 0xCE, 0xBF, 0xCF, 0x81 }; +static const symbol s_13_9[4] = { 0xCF, 0x87, 0xCF, 0x84 }; +static const symbol s_13_10[6] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCF, 0x84 }; +static const symbol s_13_11[4] = { 0xCE, 0xBA, 0xCF, 0x84 }; +static const symbol s_13_12[6] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCF, 0x84 }; +static const symbol s_13_13[4] = { 0xCF, 0x83, 0xCF, 0x87 }; +static const symbol s_13_14[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x87 }; +static const symbol s_13_15[6] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x87 }; +static const symbol s_13_16[4] = { 0xCF, 0x85, 0xCF, 0x88 }; +static const symbol s_13_17[6] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 }; +static const symbol s_13_18[4] = { 0xCF, 0x86, 0xCE, 0xB1 }; +static const symbol s_13_19[6] = { 0xCE, 0xB7, 0xCF, 0x86, 0xCE, 0xB1 }; +static const symbol s_13_20[6] = { 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xB3 }; +static const symbol s_13_21[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB3 }; +static const symbol s_13_22[4] = { 0xCE, 0xB7, 0xCE, 0xB4 }; +static const symbol s_13_23[6] = { 0xCE, 0xB5, 0xCF, 0x87, 0xCE, 0xB8 }; +static const symbol s_13_24[6] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8 }; +static const symbol s_13_25[4] = { 0xCF, 0x83, 0xCE, 0xBA }; +static const symbol s_13_26[6] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBA }; +static const symbol s_13_27[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBA }; +static const symbol s_13_28[6] = { 0xCE, 0xBA, 0xCF, 0x85, 0xCE, 0xBB }; +static const symbol s_13_29[6] = { 0xCF, 0x86, 0xCE, 0xB9, 0xCE, 0xBB }; +static const symbol s_13_30[2] = { 0xCE, 0xBC }; +static const symbol s_13_31[6] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xBC }; +static const symbol s_13_32[6] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCE, 0xBD }; + +static const struct among a_13[33] = +{ +/* 0 */ { 2, s_13_0, -1, 1, 0}, +/* 1 */ { 6, s_13_1, 0, 1, 0}, +/* 2 */ { 4, s_13_2, 0, 1, 0}, +/* 3 */ { 6, s_13_3, 0, 1, 0}, +/* 4 */ { 6, s_13_4, -1, 1, 0}, +/* 5 */ { 4, s_13_5, -1, 1, 0}, +/* 6 */ { 6, s_13_6, -1, 1, 0}, +/* 7 */ { 4, s_13_7, -1, 1, 0}, +/* 8 */ { 6, s_13_8, -1, 1, 0}, +/* 9 */ { 4, s_13_9, -1, 1, 0}, +/* 10 */ { 6, s_13_10, 9, 1, 0}, +/* 11 */ { 4, s_13_11, -1, 1, 0}, +/* 12 */ { 6, s_13_12, 11, 1, 0}, +/* 13 */ { 4, s_13_13, -1, 1, 0}, +/* 14 */ { 6, s_13_14, 13, 1, 0}, +/* 15 */ { 6, s_13_15, -1, 1, 0}, +/* 16 */ { 4, s_13_16, -1, 1, 0}, +/* 17 */ { 6, s_13_17, -1, 1, 0}, +/* 18 */ { 4, s_13_18, -1, 1, 0}, +/* 19 */ { 6, s_13_19, 18, 1, 0}, +/* 20 */ { 6, s_13_20, -1, 1, 0}, +/* 21 */ { 6, s_13_21, -1, 1, 0}, +/* 22 */ { 4, s_13_22, -1, 1, 0}, +/* 23 */ { 6, s_13_23, -1, 1, 0}, +/* 24 */ { 6, s_13_24, -1, 1, 0}, +/* 25 */ { 4, s_13_25, -1, 1, 0}, +/* 26 */ { 6, s_13_26, -1, 1, 0}, +/* 27 */ { 6, s_13_27, -1, 1, 0}, +/* 28 */ { 6, s_13_28, -1, 1, 0}, +/* 29 */ { 6, s_13_29, -1, 1, 0}, +/* 30 */ { 2, s_13_30, -1, 1, 0}, +/* 31 */ { 6, s_13_31, 30, 1, 0}, +/* 32 */ { 6, s_13_32, -1, 1, 0} +}; + +static const symbol s_14_0[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_14_1[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_14_2[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB7, 0xCF, 0x83 }; +static const symbol s_14_3[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_14_4[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_14_5[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1 }; +static const symbol s_14_6[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_14_7[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB7 }; +static const symbol s_14_8[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB9 }; +static const symbol s_14_9[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_14_10[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF }; + +static const struct among a_14[11] = +{ +/* 0 */ { 12, s_14_0, -1, 1, 0}, +/* 1 */ { 10, s_14_1, -1, 1, 0}, +/* 2 */ { 10, s_14_2, -1, 1, 0}, +/* 3 */ { 10, s_14_3, -1, 1, 0}, +/* 4 */ { 10, s_14_4, -1, 1, 0}, +/* 5 */ { 8, s_14_5, -1, 1, 0}, +/* 6 */ { 8, s_14_6, -1, 1, 0}, +/* 7 */ { 8, s_14_7, -1, 1, 0}, +/* 8 */ { 10, s_14_8, -1, 1, 0}, +/* 9 */ { 10, s_14_9, -1, 1, 0}, +/* 10 */ { 8, s_14_10, -1, 1, 0} +}; + +static const symbol s_15_0[4] = { 0xCF, 0x83, 0xCE, 0xB5 }; +static const symbol s_15_1[12] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB5 }; +static const symbol s_15_2[14] = { 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB5 }; +static const symbol s_15_3[10] = { 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_15_4[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 }; + +static const struct among a_15[5] = +{ +/* 0 */ { 4, s_15_0, -1, 1, 0}, +/* 1 */ { 12, s_15_1, 0, 1, 0}, +/* 2 */ { 14, s_15_2, 0, 1, 0}, +/* 3 */ { 10, s_15_3, -1, 1, 0}, +/* 4 */ { 12, s_15_4, -1, 1, 0} +}; + +static const symbol s_16_0[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_16_1[16] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; + +static const struct among a_16[2] = +{ +/* 0 */ { 8, s_16_0, -1, 1, 0}, +/* 1 */ { 16, s_16_1, 0, 1, 0} +}; + +static const symbol s_17_0[10] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_17_1[14] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x80, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_17_2[14] = { 0xCE, 0xB3, 0xCE, 0xBD, 0xCF, 0x89, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_17_3[16] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBD, 0xCF, 0x89, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_17_4[16] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBA, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_17_5[12] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_17_6[10] = { 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBD, 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_17_7[14] = { 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBD }; +static const symbol s_17_8[20] = { 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB4, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBD }; +static const symbol s_17_9[16] = { 0xCE, 0xB2, 0xCF, 0x85, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBD }; + +static const struct among a_17[10] = +{ +/* 0 */ { 10, s_17_0, -1, 7, 0}, +/* 1 */ { 14, s_17_1, -1, 6, 0}, +/* 2 */ { 14, s_17_2, -1, 3, 0}, +/* 3 */ { 16, s_17_3, 2, 1, 0}, +/* 4 */ { 16, s_17_4, -1, 5, 0}, +/* 5 */ { 12, s_17_5, -1, 2, 0}, +/* 6 */ { 10, s_17_6, -1, 4, 0}, +/* 7 */ { 14, s_17_7, -1, 10, 0}, +/* 8 */ { 20, s_17_8, -1, 8, 0}, +/* 9 */ { 16, s_17_9, -1, 9, 0} +}; + +static const symbol s_18_0[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_18_1[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_18_2[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_18_3[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCE, 0xB9 }; +static const symbol s_18_4[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_18_5[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF }; + +static const struct among a_18[6] = +{ +/* 0 */ { 12, s_18_0, -1, 1, 0}, +/* 1 */ { 10, s_18_1, -1, 1, 0}, +/* 2 */ { 10, s_18_2, -1, 1, 0}, +/* 3 */ { 10, s_18_3, -1, 1, 0}, +/* 4 */ { 10, s_18_4, -1, 1, 0}, +/* 5 */ { 8, s_18_5, -1, 1, 0} +}; + +static const symbol s_19_0[2] = { 0xCF, 0x83 }; +static const symbol s_19_1[2] = { 0xCF, 0x87 }; + +static const struct among a_19[2] = +{ +/* 0 */ { 2, s_19_0, -1, 1, 0}, +/* 1 */ { 2, s_19_1, -1, 1, 0} +}; + +static const symbol s_20_0[12] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_20_1[14] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_20_2[10] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 }; +static const symbol s_20_3[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 }; + +static const struct among a_20[4] = +{ +/* 0 */ { 12, s_20_0, -1, 1, 0}, +/* 1 */ { 14, s_20_1, -1, 1, 0}, +/* 2 */ { 10, s_20_2, -1, 1, 0}, +/* 3 */ { 12, s_20_3, -1, 1, 0} +}; + +static const symbol s_21_0[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x80 }; +static const symbol s_21_1[2] = { 0xCF, 0x81 }; +static const symbol s_21_2[4] = { 0xCE, 0xB2, 0xCF, 0x81 }; +static const symbol s_21_3[8] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xB2, 0xCF, 0x81 }; +static const symbol s_21_4[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB2, 0xCF, 0x81 }; +static const symbol s_21_5[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_21_6[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB8, 0xCF, 0x81 }; +static const symbol s_21_7[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81 }; +static const symbol s_21_8[2] = { 0xCF, 0x83 }; +static const symbol s_21_9[12] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x83 }; +static const symbol s_21_10[10] = { 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_21_11[4] = { 0xCF, 0x81, 0xCF, 0x85 }; +static const symbol s_21_12[2] = { 0xCF, 0x86 }; +static const symbol s_21_13[4] = { 0xCF, 0x83, 0xCF, 0x86 }; +static const symbol s_21_14[10] = { 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x86 }; +static const symbol s_21_15[2] = { 0xCF, 0x87 }; +static const symbol s_21_16[8] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB2 }; +static const symbol s_21_17[8] = { 0xCF, 0x83, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB2 }; +static const symbol s_21_18[18] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x87, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB2 }; +static const symbol s_21_19[4] = { 0xCF, 0x84, 0xCE, 0xB6 }; +static const symbol s_21_20[2] = { 0xCE, 0xBA }; +static const symbol s_21_21[4] = { 0xCF, 0x83, 0xCE, 0xBA }; +static const symbol s_21_22[10] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBA }; +static const symbol s_21_23[6] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xBA }; +static const symbol s_21_24[4] = { 0xCF, 0x80, 0xCE, 0xBB }; +static const symbol s_21_25[6] = { 0xCF, 0x86, 0xCF, 0x85, 0xCE, 0xBB }; +static const symbol s_21_26[8] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB }; +static const symbol s_21_27[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_21_28[8] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBC }; +static const symbol s_21_29[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBC }; +static const symbol s_21_30[8] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xBC }; +static const symbol s_21_31[8] = { 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_21_32[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBD }; + +static const struct among a_21[33] = +{ +/* 0 */ { 12, s_21_0, -1, 1, 0}, +/* 1 */ { 2, s_21_1, -1, 1, 0}, +/* 2 */ { 4, s_21_2, 1, 1, 0}, +/* 3 */ { 8, s_21_3, 2, 1, 0}, +/* 4 */ { 8, s_21_4, 2, 1, 0}, +/* 5 */ { 6, s_21_5, 1, 1, 0}, +/* 6 */ { 8, s_21_6, 1, 1, 0}, +/* 7 */ { 6, s_21_7, 1, 1, 0}, +/* 8 */ { 2, s_21_8, -1, 1, 0}, +/* 9 */ { 12, s_21_9, 8, 1, 0}, +/* 10 */ { 10, s_21_10, -1, 1, 0}, +/* 11 */ { 4, s_21_11, -1, 1, 0}, +/* 12 */ { 2, s_21_12, -1, 1, 0}, +/* 13 */ { 4, s_21_13, 12, 1, 0}, +/* 14 */ { 10, s_21_14, 13, 1, 0}, +/* 15 */ { 2, s_21_15, -1, 1, 0}, +/* 16 */ { 8, s_21_16, -1, 1, 0}, +/* 17 */ { 8, s_21_17, -1, 1, 0}, +/* 18 */ { 18, s_21_18, 17, 1, 0}, +/* 19 */ { 4, s_21_19, -1, 1, 0}, +/* 20 */ { 2, s_21_20, -1, 1, 0}, +/* 21 */ { 4, s_21_21, 20, 1, 0}, +/* 22 */ { 10, s_21_22, 20, 1, 0}, +/* 23 */ { 6, s_21_23, 20, 1, 0}, +/* 24 */ { 4, s_21_24, -1, 1, 0}, +/* 25 */ { 6, s_21_25, -1, 1, 0}, +/* 26 */ { 8, s_21_26, -1, 1, 0}, +/* 27 */ { 6, s_21_27, -1, 1, 0}, +/* 28 */ { 8, s_21_28, -1, 1, 0}, +/* 29 */ { 8, s_21_29, -1, 1, 0}, +/* 30 */ { 8, s_21_30, -1, 1, 0}, +/* 31 */ { 8, s_21_31, -1, 1, 0}, +/* 32 */ { 6, s_21_32, -1, 1, 0} +}; + +static const symbol s_22_0[2] = { 0xCF, 0x80 }; +static const symbol s_22_1[10] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_22_2[6] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_22_3[6] = { 0xCE, 0xBD, 0xCF, 0x85, 0xCF, 0x86 }; +static const symbol s_22_4[2] = { 0xCE, 0xB2 }; +static const symbol s_22_5[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB4 }; +static const symbol s_22_6[2] = { 0xCE, 0xB6 }; +static const symbol s_22_7[4] = { 0xCF, 0x83, 0xCE, 0xBA }; +static const symbol s_22_8[6] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_22_9[4] = { 0xCE, 0xB3, 0xCE, 0xBB }; +static const symbol s_22_10[12] = { 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB }; +static const symbol s_22_11[12] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBA, 0xCF, 0x81, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_22_12[8] = { 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_22_13[14] = { 0xCE, 0xB7, 0xCE, 0xB3, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xBD }; +static const symbol s_22_14[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBD }; + +static const struct among a_22[15] = +{ +/* 0 */ { 2, s_22_0, -1, 1, 0}, +/* 1 */ { 10, s_22_1, -1, 1, 0}, +/* 2 */ { 6, s_22_2, -1, 1, 0}, +/* 3 */ { 6, s_22_3, -1, 1, 0}, +/* 4 */ { 2, s_22_4, -1, 1, 0}, +/* 5 */ { 8, s_22_5, -1, 1, 0}, +/* 6 */ { 2, s_22_6, -1, 1, 0}, +/* 7 */ { 4, s_22_7, -1, 1, 0}, +/* 8 */ { 6, s_22_8, -1, 1, 0}, +/* 9 */ { 4, s_22_9, -1, 1, 0}, +/* 10 */ { 12, s_22_10, -1, 1, 0}, +/* 11 */ { 12, s_22_11, -1, 1, 0}, +/* 12 */ { 8, s_22_12, -1, 1, 0}, +/* 13 */ { 14, s_22_13, -1, 1, 0}, +/* 14 */ { 6, s_22_14, -1, 1, 0} +}; + +static const symbol s_23_0[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83 }; +static const symbol s_23_1[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_23_2[8] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1 }; +static const symbol s_23_3[8] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_23_4[12] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_23_5[6] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 }; +static const symbol s_23_6[10] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 }; +static const symbol s_23_7[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBD }; + +static const struct among a_23[8] = +{ +/* 0 */ { 10, s_23_0, -1, 1, 0}, +/* 1 */ { 10, s_23_1, -1, 1, 0}, +/* 2 */ { 8, s_23_2, -1, 1, 0}, +/* 3 */ { 8, s_23_3, -1, 1, 0}, +/* 4 */ { 12, s_23_4, 3, 1, 0}, +/* 5 */ { 6, s_23_5, -1, 1, 0}, +/* 6 */ { 10, s_23_6, 5, 1, 0}, +/* 7 */ { 10, s_23_7, -1, 1, 0} +}; + +static const symbol s_24_0[4] = { 0xCE, 0xB9, 0xCF, 0x81 }; +static const symbol s_24_1[6] = { 0xCF, 0x88, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_24_2[8] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCF, 0x86, 0xCE, 0xBD }; +static const symbol s_24_3[6] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF }; + +static const struct among a_24[4] = +{ +/* 0 */ { 4, s_24_0, -1, 1, 0}, +/* 1 */ { 6, s_24_1, -1, 1, 0}, +/* 2 */ { 8, s_24_2, -1, 1, 0}, +/* 3 */ { 6, s_24_3, -1, 1, 0} +}; + +static const symbol s_25_0[2] = { 0xCE, 0xB5 }; +static const symbol s_25_1[10] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xB9, 0xCF, 0x87, 0xCE, 0xBD }; + +static const struct among a_25[2] = +{ +/* 0 */ { 2, s_25_0, -1, 1, 0}, +/* 1 */ { 10, s_25_1, -1, 1, 0} +}; + +static const symbol s_26_0[8] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_26_1[10] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_26_2[8] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xBF }; + +static const struct among a_26[3] = +{ +/* 0 */ { 8, s_26_0, -1, 1, 0}, +/* 1 */ { 10, s_26_1, -1, 1, 0}, +/* 2 */ { 8, s_26_2, -1, 1, 0} +}; + +static const symbol s_27_0[2] = { 0xCF, 0x81 }; +static const symbol s_27_1[4] = { 0xCE, 0xB9, 0xCE, 0xB2 }; +static const symbol s_27_2[2] = { 0xCE, 0xB4 }; +static const symbol s_27_3[6] = { 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBA }; +static const symbol s_27_4[10] = { 0xCF, 0x86, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBA }; +static const symbol s_27_5[8] = { 0xCE, 0xBF, 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBB }; +static const symbol s_27_6[6] = { 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBD }; + +static const struct among a_27[7] = +{ +/* 0 */ { 2, s_27_0, -1, 1, 0}, +/* 1 */ { 4, s_27_1, -1, 1, 0}, +/* 2 */ { 2, s_27_2, -1, 1, 0}, +/* 3 */ { 6, s_27_3, -1, 1, 0}, +/* 4 */ { 10, s_27_4, -1, 1, 0}, +/* 5 */ { 8, s_27_5, -1, 1, 0}, +/* 6 */ { 6, s_27_6, -1, 1, 0} +}; + +static const symbol s_28_0[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_28_1[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_28_2[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5 }; +static const symbol s_28_3[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF }; + +static const struct among a_28[4] = +{ +/* 0 */ { 10, s_28_0, -1, 1, 0}, +/* 1 */ { 10, s_28_1, -1, 1, 0}, +/* 2 */ { 8, s_28_2, -1, 1, 0}, +/* 3 */ { 8, s_28_3, -1, 1, 0} +}; + +static const symbol s_29_0[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_29_1[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD }; + +static const struct among a_29[2] = +{ +/* 0 */ { 8, s_29_0, -1, 1, 0}, +/* 1 */ { 8, s_29_1, -1, 1, 0} +}; + +static const symbol s_30_0[10] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80 }; +static const symbol s_30_1[6] = { 0xCE, 0xBA, 0xCF, 0x85, 0xCF, 0x81 }; +static const symbol s_30_2[10] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_30_3[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_30_4[10] = { 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84 }; +static const symbol s_30_5[10] = { 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9 }; +static const symbol s_30_6[6] = { 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9 }; +static const symbol s_30_7[4] = { 0xCE, 0xBF, 0xCE, 0xBA }; +static const symbol s_30_8[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBC }; +static const symbol s_30_9[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBD }; + +static const struct among a_30[10] = +{ +/* 0 */ { 10, s_30_0, -1, -1, 0}, +/* 1 */ { 6, s_30_1, -1, -1, 0}, +/* 2 */ { 10, s_30_2, -1, -1, 0}, +/* 3 */ { 10, s_30_3, -1, -1, 0}, +/* 4 */ { 10, s_30_4, -1, -1, 0}, +/* 5 */ { 10, s_30_5, -1, -1, 0}, +/* 6 */ { 6, s_30_6, -1, -1, 0}, +/* 7 */ { 4, s_30_7, -1, -1, 0}, +/* 8 */ { 6, s_30_8, -1, -1, 0}, +/* 9 */ { 6, s_30_9, -1, -1, 0} +}; + +static const symbol s_31_0[8] = { 0xCE, 0xB5, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_31_1[8] = { 0xCE, 0xB5, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD }; + +static const struct among a_31[2] = +{ +/* 0 */ { 8, s_31_0, -1, 1, 0}, +/* 1 */ { 8, s_31_1, -1, 1, 0} +}; + +static const symbol s_32_0[10] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x80 }; +static const symbol s_32_1[4] = { 0xCF, 0x85, 0xCF, 0x80 }; +static const symbol s_32_2[6] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 }; +static const symbol s_32_3[6] = { 0xCE, 0xB3, 0xCE, 0xB7, 0xCF, 0x80 }; +static const symbol s_32_4[4] = { 0xCE, 0xB9, 0xCF, 0x80 }; +static const symbol s_32_5[6] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80 }; +static const symbol s_32_6[4] = { 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_32_7[6] = { 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBB }; + +static const struct among a_32[8] = +{ +/* 0 */ { 10, s_32_0, -1, 1, 0}, +/* 1 */ { 4, s_32_1, -1, 1, 0}, +/* 2 */ { 6, s_32_2, -1, 1, 0}, +/* 3 */ { 6, s_32_3, -1, 1, 0}, +/* 4 */ { 4, s_32_4, -1, 1, 0}, +/* 5 */ { 6, s_32_5, -1, 1, 0}, +/* 6 */ { 4, s_32_6, -1, 1, 0}, +/* 7 */ { 6, s_32_7, -1, 1, 0} +}; + +static const symbol s_33_0[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_33_1[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD }; + +static const struct among a_33[2] = +{ +/* 0 */ { 10, s_33_0, -1, 1, 0}, +/* 1 */ { 10, s_33_1, -1, 1, 0} +}; + +static const symbol s_34_0[4] = { 0xCF, 0x83, 0xCF, 0x80 }; +static const symbol s_34_1[4] = { 0xCF, 0x86, 0xCF, 0x81 }; +static const symbol s_34_2[2] = { 0xCF, 0x83 }; +static const symbol s_34_3[6] = { 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x87 }; +static const symbol s_34_4[8] = { 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB3 }; +static const symbol s_34_5[4] = { 0xCF, 0x86, 0xCE, 0xB5 }; +static const symbol s_34_6[6] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA }; +static const symbol s_34_7[4] = { 0xCF, 0x83, 0xCE, 0xBA }; +static const symbol s_34_8[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xBA }; +static const symbol s_34_9[8] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB }; +static const symbol s_34_10[4] = { 0xCF, 0x86, 0xCE, 0xBB }; +static const symbol s_34_11[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_34_12[6] = { 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBB }; +static const symbol s_34_13[4] = { 0xCF, 0x87, 0xCE, 0xBD }; +static const symbol s_34_14[8] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBE }; + +static const struct among a_34[15] = +{ +/* 0 */ { 4, s_34_0, -1, 1, 0}, +/* 1 */ { 4, s_34_1, -1, 1, 0}, +/* 2 */ { 2, s_34_2, -1, 1, 0}, +/* 3 */ { 6, s_34_3, -1, 1, 0}, +/* 4 */ { 8, s_34_4, -1, 1, 0}, +/* 5 */ { 4, s_34_5, -1, 1, 0}, +/* 6 */ { 6, s_34_6, -1, 1, 0}, +/* 7 */ { 4, s_34_7, -1, 1, 0}, +/* 8 */ { 12, s_34_8, -1, 1, 0}, +/* 9 */ { 8, s_34_9, -1, 1, 0}, +/* 10 */ { 4, s_34_10, -1, 1, 0}, +/* 11 */ { 10, s_34_11, -1, 1, 0}, +/* 12 */ { 6, s_34_12, -1, 1, 0}, +/* 13 */ { 4, s_34_13, -1, 1, 0}, +/* 14 */ { 8, s_34_14, -1, 1, 0} +}; + +static const symbol s_35_0[6] = { 0xCE, 0xB5, 0xCF, 0x89, 0xCF, 0x83 }; +static const symbol s_35_1[6] = { 0xCE, 0xB5, 0xCF, 0x89, 0xCE, 0xBD }; + +static const struct among a_35[2] = +{ +/* 0 */ { 6, s_35_0, -1, 1, 0}, +/* 1 */ { 6, s_35_1, -1, 1, 0} +}; + +static const symbol s_36_0[2] = { 0xCF, 0x80 }; +static const symbol s_36_1[6] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_36_2[2] = { 0xCE, 0xB4 }; +static const symbol s_36_3[4] = { 0xCE, 0xB9, 0xCE, 0xB4 }; +static const symbol s_36_4[2] = { 0xCE, 0xB8 }; +static const symbol s_36_5[6] = { 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_36_6[4] = { 0xCE, 0xB5, 0xCE, 0xBB }; +static const symbol s_36_7[2] = { 0xCE, 0xBD }; + +static const struct among a_36[8] = +{ +/* 0 */ { 2, s_36_0, -1, 1, 0}, +/* 1 */ { 6, s_36_1, -1, 1, 0}, +/* 2 */ { 2, s_36_2, -1, 1, 0}, +/* 3 */ { 4, s_36_3, 2, 1, 0}, +/* 4 */ { 2, s_36_4, -1, 1, 0}, +/* 5 */ { 6, s_36_5, -1, 1, 0}, +/* 6 */ { 4, s_36_6, -1, 1, 0}, +/* 7 */ { 2, s_36_7, -1, 1, 0} +}; + +static const symbol s_37_0[6] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_37_1[4] = { 0xCE, 0xB9, 0xCE, 0xB1 }; +static const symbol s_37_2[6] = { 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD }; + +static const struct among a_37[3] = +{ +/* 0 */ { 6, s_37_0, -1, 1, 0}, +/* 1 */ { 4, s_37_1, -1, 1, 0}, +/* 2 */ { 6, s_37_2, -1, 1, 0} +}; + +static const symbol s_38_0[8] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_38_1[6] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xB1 }; +static const symbol s_38_2[8] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_38_3[6] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBF }; + +static const struct among a_38[4] = +{ +/* 0 */ { 8, s_38_0, -1, 1, 0}, +/* 1 */ { 6, s_38_1, -1, 1, 0}, +/* 2 */ { 8, s_38_2, -1, 1, 0}, +/* 3 */ { 6, s_38_3, -1, 1, 0} +}; + +static const symbol s_39_0[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCF, 0x80 }; +static const symbol s_39_1[6] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_39_2[12] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x83 }; +static const symbol s_39_3[8] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x84, 0xCF, 0x83 }; +static const symbol s_39_4[8] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83 }; +static const symbol s_39_5[6] = { 0xCF, 0x86, 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_39_6[6] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x83 }; +static const symbol s_39_7[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_39_8[8] = { 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x81, 0xCF, 0x84 }; +static const symbol s_39_9[14] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_39_10[6] = { 0xCE, 0xBD, 0xCE, 0xB9, 0xCF, 0x84 }; +static const symbol s_39_11[12] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84 }; +static const symbol s_39_12[8] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCF, 0x89, 0xCE, 0xB4 }; +static const symbol s_39_13[4] = { 0xCE, 0xB1, 0xCE, 0xB4 }; +static const symbol s_39_14[10] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB4 }; +static const symbol s_39_15[10] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB4 }; +static const symbol s_39_16[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xB4 }; +static const symbol s_39_17[6] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB4 }; +static const symbol s_39_18[8] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB4 }; +static const symbol s_39_19[12] = { 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB4 }; +static const symbol s_39_20[10] = { 0xCF, 0x86, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB4 }; +static const symbol s_39_21[4] = { 0xCE, 0xB7, 0xCE, 0xB8 }; +static const symbol s_39_22[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB7, 0xCE, 0xB8 }; +static const symbol s_39_23[6] = { 0xCE, 0xBE, 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_39_24[8] = { 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB }; +static const symbol s_39_25[4] = { 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_39_26[14] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x87, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_39_27[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBB }; +static const symbol s_39_28[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB }; +static const symbol s_39_29[8] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCF, 0x89, 0xCE, 0xBC }; +static const symbol s_39_30[8] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC }; +static const symbol s_39_31[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_39_32[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_39_33[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xBD }; +static const symbol s_39_34[14] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xBB, 0xCE, 0xBD }; +static const symbol s_39_35[10] = { 0xCF, 0x86, 0xCE, 0xB9, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xBD }; + +static const struct among a_39[36] = +{ +/* 0 */ { 8, s_39_0, -1, 1, 0}, +/* 1 */ { 6, s_39_1, -1, 1, 0}, +/* 2 */ { 12, s_39_2, -1, 1, 0}, +/* 3 */ { 8, s_39_3, -1, 1, 0}, +/* 4 */ { 8, s_39_4, -1, 1, 0}, +/* 5 */ { 6, s_39_5, -1, 1, 0}, +/* 6 */ { 6, s_39_6, -1, 1, 0}, +/* 7 */ { 8, s_39_7, -1, 1, 0}, +/* 8 */ { 8, s_39_8, -1, 1, 0}, +/* 9 */ { 14, s_39_9, -1, 1, 0}, +/* 10 */ { 6, s_39_10, -1, 1, 0}, +/* 11 */ { 12, s_39_11, -1, 1, 0}, +/* 12 */ { 8, s_39_12, -1, 1, 0}, +/* 13 */ { 4, s_39_13, -1, 1, 0}, +/* 14 */ { 10, s_39_14, 13, 1, 0}, +/* 15 */ { 10, s_39_15, 13, 1, 0}, +/* 16 */ { 10, s_39_16, -1, 1, 0}, +/* 17 */ { 6, s_39_17, -1, 1, 0}, +/* 18 */ { 8, s_39_18, -1, 1, 0}, +/* 19 */ { 12, s_39_19, -1, 1, 0}, +/* 20 */ { 10, s_39_20, -1, 1, 0}, +/* 21 */ { 4, s_39_21, -1, 1, 0}, +/* 22 */ { 8, s_39_22, 21, 1, 0}, +/* 23 */ { 6, s_39_23, -1, 1, 0}, +/* 24 */ { 8, s_39_24, -1, 1, 0}, +/* 25 */ { 4, s_39_25, -1, 1, 0}, +/* 26 */ { 14, s_39_26, 25, 1, 0}, +/* 27 */ { 14, s_39_27, -1, 1, 0}, +/* 28 */ { 8, s_39_28, -1, 1, 0}, +/* 29 */ { 8, s_39_29, -1, 1, 0}, +/* 30 */ { 8, s_39_30, -1, 1, 0}, +/* 31 */ { 8, s_39_31, -1, 1, 0}, +/* 32 */ { 8, s_39_32, -1, 1, 0}, +/* 33 */ { 12, s_39_33, -1, 1, 0}, +/* 34 */ { 14, s_39_34, -1, 1, 0}, +/* 35 */ { 10, s_39_35, -1, 1, 0} +}; + +static const symbol s_40_0[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_40_1[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_40_2[10] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_40_3[10] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_40_4[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; + +static const struct among a_40[5] = +{ +/* 0 */ { 12, s_40_0, -1, 1, 0}, +/* 1 */ { 10, s_40_1, -1, 1, 0}, +/* 2 */ { 10, s_40_2, -1, 1, 0}, +/* 3 */ { 10, s_40_3, -1, 1, 0}, +/* 4 */ { 14, s_40_4, 3, 1, 0} +}; + +static const symbol s_41_0[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80 }; +static const symbol s_41_1[8] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x81 }; +static const symbol s_41_2[10] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_41_3[6] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84 }; +static const symbol s_41_4[2] = { 0xCF, 0x87 }; +static const symbol s_41_5[6] = { 0xCF, 0x83, 0xCE, 0xB9, 0xCF, 0x87 }; +static const symbol s_41_6[8] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB2 }; +static const symbol s_41_7[6] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xB8 }; +static const symbol s_41_8[6] = { 0xCE, 0xBE, 0xCE, 0xB5, 0xCE, 0xB8 }; +static const symbol s_41_9[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB8 }; +static const symbol s_41_10[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA }; +static const symbol s_41_11[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB }; + +static const struct among a_41[12] = +{ +/* 0 */ { 8, s_41_0, -1, 1, 0}, +/* 1 */ { 8, s_41_1, -1, 1, 0}, +/* 2 */ { 10, s_41_2, -1, 1, 0}, +/* 3 */ { 6, s_41_3, -1, 1, 0}, +/* 4 */ { 2, s_41_4, -1, 1, 0}, +/* 5 */ { 6, s_41_5, 4, 1, 0}, +/* 6 */ { 8, s_41_6, -1, 1, 0}, +/* 7 */ { 6, s_41_7, -1, 1, 0}, +/* 8 */ { 6, s_41_8, -1, 1, 0}, +/* 9 */ { 8, s_41_9, -1, 1, 0}, +/* 10 */ { 8, s_41_10, -1, 1, 0}, +/* 11 */ { 6, s_41_11, -1, 1, 0} +}; + +static const symbol s_42_0[4] = { 0xCF, 0x84, 0xCF, 0x81 }; +static const symbol s_42_1[4] = { 0xCF, 0x84, 0xCF, 0x83 }; + +static const struct among a_42[2] = +{ +/* 0 */ { 4, s_42_0, -1, 1, 0}, +/* 1 */ { 4, s_42_1, -1, 1, 0} +}; + +static const symbol s_43_0[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_43_1[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_43_2[14] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_43_3[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_43_4[12] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_43_5[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_43_6[10] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_43_7[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_43_8[10] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_43_9[10] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_43_10[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; + +static const struct among a_43[11] = +{ +/* 0 */ { 12, s_43_0, -1, 1, 0}, +/* 1 */ { 10, s_43_1, -1, 1, 0}, +/* 2 */ { 14, s_43_2, -1, 1, 0}, +/* 3 */ { 16, s_43_3, 2, 1, 0}, +/* 4 */ { 12, s_43_4, -1, 1, 0}, +/* 5 */ { 14, s_43_5, 4, 1, 0}, +/* 6 */ { 10, s_43_6, -1, 1, 0}, +/* 7 */ { 12, s_43_7, 6, 1, 0}, +/* 8 */ { 10, s_43_8, -1, 1, 0}, +/* 9 */ { 10, s_43_9, -1, 1, 0}, +/* 10 */ { 14, s_43_10, 9, 1, 0} +}; + +static const symbol s_44_0[2] = { 0xCF, 0x80 }; +static const symbol s_44_1[4] = { 0xCF, 0x83, 0xCF, 0x80 }; +static const symbol s_44_2[14] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 }; +static const symbol s_44_3[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 }; +static const symbol s_44_4[18] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 }; +static const symbol s_44_5[8] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_44_6[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_44_7[12] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_44_8[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x81 }; +static const symbol s_44_9[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x81 }; +static const symbol s_44_10[4] = { 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_44_11[10] = { 0xCE, 0xB2, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_44_12[6] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_44_13[12] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB8, 0xCE, 0xB7, 0xCF, 0x81 }; +static const symbol s_44_14[12] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x81 }; +static const symbol s_44_15[2] = { 0xCF, 0x83 }; +static const symbol s_44_16[16] = { 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x83 }; +static const symbol s_44_17[6] = { 0xCE, 0xB8, 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_44_18[6] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x83 }; +static const symbol s_44_19[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x83 }; +static const symbol s_44_20[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_44_21[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_44_22[8] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_44_23[14] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_44_24[6] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x84 }; +static const symbol s_44_25[12] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x84 }; +static const symbol s_44_26[10] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCF, 0x84 }; +static const symbol s_44_27[8] = { 0xCE, 0xB6, 0xCF, 0x89, 0xCE, 0xBD, 0xCF, 0x84 }; +static const symbol s_44_28[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBD, 0xCF, 0x84 }; +static const symbol s_44_29[2] = { 0xCF, 0x86 }; +static const symbol s_44_30[14] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x86 }; +static const symbol s_44_31[14] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xB9, 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x86 }; +static const symbol s_44_32[6] = { 0xCE, 0xBF, 0xCF, 0x81, 0xCF, 0x86 }; +static const symbol s_44_33[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x86 }; +static const symbol s_44_34[8] = { 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x86 }; +static const symbol s_44_35[16] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x86 }; +static const symbol s_44_36[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB7, 0xCF, 0x86 }; +static const symbol s_44_37[12] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB7, 0xCF, 0x86 }; +static const symbol s_44_38[2] = { 0xCF, 0x87 }; +static const symbol s_44_39[14] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 }; +static const symbol s_44_40[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 }; +static const symbol s_44_41[12] = { 0xCE, 0xB2, 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 }; +static const symbol s_44_42[22] = { 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xB2, 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 }; +static const symbol s_44_43[22] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB2, 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 }; +static const symbol s_44_44[22] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBD, 0xCE, 0xBF, 0xCE, 0xB2, 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 }; +static const symbol s_44_45[6] = { 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x87 }; +static const symbol s_44_46[6] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB2 }; +static const symbol s_44_47[8] = { 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB2 }; +static const symbol s_44_48[14] = { 0xCF, 0x88, 0xCE, 0xB7, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB2 }; +static const symbol s_44_49[6] = { 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB2 }; +static const symbol s_44_50[8] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB2 }; +static const symbol s_44_51[16] = { 0xCE, 0xBE, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB2 }; +static const symbol s_44_52[2] = { 0xCE, 0xB3 }; +static const symbol s_44_53[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xB3 }; +static const symbol s_44_54[10] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xB3 }; +static const symbol s_44_55[4] = { 0xCE, 0xB1, 0xCE, 0xB3 }; +static const symbol s_44_56[8] = { 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB3 }; +static const symbol s_44_57[8] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB3 }; +static const symbol s_44_58[10] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB3 }; +static const symbol s_44_59[12] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB3 }; +static const symbol s_44_60[10] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB3 }; +static const symbol s_44_61[8] = { 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xB3 }; +static const symbol s_44_62[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB7, 0xCE, 0xB3 }; +static const symbol s_44_63[6] = { 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB3 }; +static const symbol s_44_64[14] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB6 }; +static const symbol s_44_65[2] = { 0xCE, 0xB8 }; +static const symbol s_44_66[12] = { 0xCE, 0xBC, 0xCF, 0x89, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB8 }; +static const symbol s_44_67[6] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB8 }; +static const symbol s_44_68[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB8 }; +static const symbol s_44_69[8] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xBA }; +static const symbol s_44_70[12] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x87, 0xCF, 0x85, 0xCE, 0xBA }; +static const symbol s_44_71[6] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xBA }; +static const symbol s_44_72[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBA }; +static const symbol s_44_73[4] = { 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_44_74[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_44_75[10] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBA }; +static const symbol s_44_76[4] = { 0xCF, 0x80, 0xCE, 0xBB }; +static const symbol s_44_77[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xBB }; +static const symbol s_44_78[12] = { 0xCF, 0x88, 0xCF, 0x85, 0xCF, 0x87, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xBB }; +static const symbol s_44_79[10] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xBB }; +static const symbol s_44_80[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB }; +static const symbol s_44_81[6] = { 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_44_82[14] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x85, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_44_83[14] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_44_84[12] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_44_85[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xBB }; +static const symbol s_44_86[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xBB }; +static const symbol s_44_87[12] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBB }; +static const symbol s_44_88[2] = { 0xCE, 0xBC }; +static const symbol s_44_89[14] = { 0xCE, 0xB4, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC }; +static const symbol s_44_90[10] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x87, 0xCE, 0xBC }; +static const symbol s_44_91[16] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBC }; +static const symbol s_44_92[16] = { 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBC }; +static const symbol s_44_93[2] = { 0xCE, 0xBD }; +static const symbol s_44_94[16] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD }; + +static const struct among a_44[95] = +{ +/* 0 */ { 2, s_44_0, -1, 1, 0}, +/* 1 */ { 4, s_44_1, 0, 1, 0}, +/* 2 */ { 14, s_44_2, 0, 1, 0}, +/* 3 */ { 8, s_44_3, 0, 1, 0}, +/* 4 */ { 18, s_44_4, 0, 1, 0}, +/* 5 */ { 8, s_44_5, 0, 1, 0}, +/* 6 */ { 6, s_44_6, 0, 1, 0}, +/* 7 */ { 12, s_44_7, 6, 1, 0}, +/* 8 */ { 12, s_44_8, -1, 1, 0}, +/* 9 */ { 6, s_44_9, -1, 1, 0}, +/* 10 */ { 4, s_44_10, -1, 1, 0}, +/* 11 */ { 10, s_44_11, 10, 1, 0}, +/* 12 */ { 6, s_44_12, 10, 1, 0}, +/* 13 */ { 12, s_44_13, -1, 1, 0}, +/* 14 */ { 12, s_44_14, -1, 1, 0}, +/* 15 */ { 2, s_44_15, -1, 1, 0}, +/* 16 */ { 16, s_44_16, 15, 1, 0}, +/* 17 */ { 6, s_44_17, 15, 1, 0}, +/* 18 */ { 6, s_44_18, 15, 1, 0}, +/* 19 */ { 10, s_44_19, 15, 1, 0}, +/* 20 */ { 8, s_44_20, -1, 1, 0}, +/* 21 */ { 8, s_44_21, -1, 1, 0}, +/* 22 */ { 8, s_44_22, -1, 1, 0}, +/* 23 */ { 14, s_44_23, -1, 1, 0}, +/* 24 */ { 6, s_44_24, -1, 1, 0}, +/* 25 */ { 12, s_44_25, -1, 1, 0}, +/* 26 */ { 10, s_44_26, -1, 1, 0}, +/* 27 */ { 8, s_44_27, -1, 1, 0}, +/* 28 */ { 10, s_44_28, -1, 1, 0}, +/* 29 */ { 2, s_44_29, -1, 1, 0}, +/* 30 */ { 14, s_44_30, 29, 1, 0}, +/* 31 */ { 14, s_44_31, 29, 1, 0}, +/* 32 */ { 6, s_44_32, 29, 1, 0}, +/* 33 */ { 8, s_44_33, 29, 1, 0}, +/* 34 */ { 8, s_44_34, 29, 1, 0}, +/* 35 */ { 16, s_44_35, 34, 1, 0}, +/* 36 */ { 10, s_44_36, 29, 1, 0}, +/* 37 */ { 12, s_44_37, 36, 1, 0}, +/* 38 */ { 2, s_44_38, -1, 1, 0}, +/* 39 */ { 14, s_44_39, 38, 1, 0}, +/* 40 */ { 8, s_44_40, 38, 1, 0}, +/* 41 */ { 12, s_44_41, 38, 1, 0}, +/* 42 */ { 22, s_44_42, 41, 1, 0}, +/* 43 */ { 22, s_44_43, 41, 1, 0}, +/* 44 */ { 22, s_44_44, 41, 1, 0}, +/* 45 */ { 6, s_44_45, 38, 1, 0}, +/* 46 */ { 6, s_44_46, -1, 1, 0}, +/* 47 */ { 8, s_44_47, 46, 1, 0}, +/* 48 */ { 14, s_44_48, 46, 1, 0}, +/* 49 */ { 6, s_44_49, -1, 1, 0}, +/* 50 */ { 8, s_44_50, 49, 1, 0}, +/* 51 */ { 16, s_44_51, 50, 1, 0}, +/* 52 */ { 2, s_44_52, -1, 1, 0}, +/* 53 */ { 10, s_44_53, 52, 1, 0}, +/* 54 */ { 10, s_44_54, 52, 1, 0}, +/* 55 */ { 4, s_44_55, 52, 1, 0}, +/* 56 */ { 8, s_44_56, 55, 1, 0}, +/* 57 */ { 8, s_44_57, 55, 1, 0}, +/* 58 */ { 10, s_44_58, 52, 1, 0}, +/* 59 */ { 12, s_44_59, 58, 1, 0}, +/* 60 */ { 10, s_44_60, 52, 1, 0}, +/* 61 */ { 8, s_44_61, 52, 1, 0}, +/* 62 */ { 8, s_44_62, 52, 1, 0}, +/* 63 */ { 6, s_44_63, 52, 1, 0}, +/* 64 */ { 14, s_44_64, -1, 1, 0}, +/* 65 */ { 2, s_44_65, -1, 1, 0}, +/* 66 */ { 12, s_44_66, 65, 1, 0}, +/* 67 */ { 6, s_44_67, 65, 1, 0}, +/* 68 */ { 8, s_44_68, 67, 1, 0}, +/* 69 */ { 8, s_44_69, -1, 1, 0}, +/* 70 */ { 12, s_44_70, -1, 1, 0}, +/* 71 */ { 6, s_44_71, -1, 1, 0}, +/* 72 */ { 10, s_44_72, -1, 1, 0}, +/* 73 */ { 4, s_44_73, -1, 1, 0}, +/* 74 */ { 8, s_44_74, 73, 1, 0}, +/* 75 */ { 10, s_44_75, -1, 1, 0}, +/* 76 */ { 4, s_44_76, -1, 1, 0}, +/* 77 */ { 8, s_44_77, 76, 1, 0}, +/* 78 */ { 12, s_44_78, 76, 1, 0}, +/* 79 */ { 10, s_44_79, 76, 1, 0}, +/* 80 */ { 6, s_44_80, -1, 1, 0}, +/* 81 */ { 6, s_44_81, -1, 1, 0}, +/* 82 */ { 14, s_44_82, 81, 1, 0}, +/* 83 */ { 14, s_44_83, 81, 1, 0}, +/* 84 */ { 12, s_44_84, 81, 1, 0}, +/* 85 */ { 12, s_44_85, -1, 1, 0}, +/* 86 */ { 6, s_44_86, -1, 1, 0}, +/* 87 */ { 12, s_44_87, -1, 1, 0}, +/* 88 */ { 2, s_44_88, -1, 1, 0}, +/* 89 */ { 14, s_44_89, 88, 1, 0}, +/* 90 */ { 10, s_44_90, 88, 1, 0}, +/* 91 */ { 16, s_44_91, 88, 1, 0}, +/* 92 */ { 16, s_44_92, 88, 1, 0}, +/* 93 */ { 2, s_44_93, -1, 1, 0}, +/* 94 */ { 16, s_44_94, 93, 1, 0} +}; + +static const symbol s_45_0[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 }; + +static const struct among a_45[1] = +{ +/* 0 */ { 10, s_45_0, -1, 1, 0} +}; + +static const symbol s_46_0[6] = { 0xCF, 0x80, 0xCF, 0x85, 0xCF, 0x81 }; +static const symbol s_46_1[6] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x81 }; +static const symbol s_46_2[6] = { 0xCF, 0x87, 0xCF, 0x89, 0xCF, 0x81 }; +static const symbol s_46_3[6] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_46_4[4] = { 0xCE, 0xB2, 0xCF, 0x81 }; +static const symbol s_46_5[6] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCF, 0x81 }; +static const symbol s_46_6[6] = { 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81 }; +static const symbol s_46_7[6] = { 0xCE, 0xBD, 0xCE, 0xB5, 0xCF, 0x84 }; +static const symbol s_46_8[4] = { 0xCF, 0x83, 0xCF, 0x87 }; +static const symbol s_46_9[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB4 }; +static const symbol s_46_10[6] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB4 }; +static const symbol s_46_11[4] = { 0xCE, 0xBF, 0xCE, 0xB4 }; +static const symbol s_46_12[10] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB8 }; +static const symbol s_46_13[4] = { 0xCF, 0x83, 0xCE, 0xB8 }; +static const symbol s_46_14[6] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCE, 0xB8 }; +static const symbol s_46_15[6] = { 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB8 }; +static const symbol s_46_16[6] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB8 }; +static const symbol s_46_17[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xB8 }; +static const symbol s_46_18[6] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8 }; +static const symbol s_46_19[6] = { 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xB8 }; +static const symbol s_46_20[6] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xB8 }; +static const symbol s_46_21[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB8 }; +static const symbol s_46_22[6] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB8 }; +static const symbol s_46_23[6] = { 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xB8 }; +static const symbol s_46_24[6] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA }; +static const symbol s_46_25[8] = { 0xCF, 0x89, 0xCF, 0x86, 0xCE, 0xB5, 0xCE, 0xBB }; +static const symbol s_46_26[6] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCE, 0xBB }; +static const symbol s_46_27[6] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_46_28[6] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBD }; +static const symbol s_46_29[6] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBD }; +static const symbol s_46_30[6] = { 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBD }; + +static const struct among a_46[31] = +{ +/* 0 */ { 6, s_46_0, -1, 1, 0}, +/* 1 */ { 6, s_46_1, -1, 1, 0}, +/* 2 */ { 6, s_46_2, -1, 1, 0}, +/* 3 */ { 6, s_46_3, -1, 1, 0}, +/* 4 */ { 4, s_46_4, -1, 1, 0}, +/* 5 */ { 6, s_46_5, -1, 1, 0}, +/* 6 */ { 6, s_46_6, -1, 1, 0}, +/* 7 */ { 6, s_46_7, -1, 1, 0}, +/* 8 */ { 4, s_46_8, -1, 1, 0}, +/* 9 */ { 8, s_46_9, -1, 1, 0}, +/* 10 */ { 6, s_46_10, -1, 1, 0}, +/* 11 */ { 4, s_46_11, -1, 1, 0}, +/* 12 */ { 10, s_46_12, -1, 1, 0}, +/* 13 */ { 4, s_46_13, -1, 1, 0}, +/* 14 */ { 6, s_46_14, -1, 1, 0}, +/* 15 */ { 6, s_46_15, -1, 1, 0}, +/* 16 */ { 6, s_46_16, -1, 1, 0}, +/* 17 */ { 8, s_46_17, -1, 1, 0}, +/* 18 */ { 6, s_46_18, -1, 1, 0}, +/* 19 */ { 6, s_46_19, -1, 1, 0}, +/* 20 */ { 6, s_46_20, -1, 1, 0}, +/* 21 */ { 8, s_46_21, -1, 1, 0}, +/* 22 */ { 6, s_46_22, -1, 1, 0}, +/* 23 */ { 6, s_46_23, -1, 1, 0}, +/* 24 */ { 6, s_46_24, -1, 1, 0}, +/* 25 */ { 8, s_46_25, -1, 1, 0}, +/* 26 */ { 6, s_46_26, -1, 1, 0}, +/* 27 */ { 6, s_46_27, -1, 1, 0}, +/* 28 */ { 6, s_46_28, -1, 1, 0}, +/* 29 */ { 6, s_46_29, -1, 1, 0}, +/* 30 */ { 6, s_46_30, -1, 1, 0} +}; + +static const symbol s_47_0[8] = { 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x81, 0xCF, 0x80 }; +static const symbol s_47_1[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_47_2[8] = { 0xCE, 0xB8, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x81 }; +static const symbol s_47_3[6] = { 0xCE, 0xBD, 0xCF, 0x84, 0xCF, 0x81 }; +static const symbol s_47_4[8] = { 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_47_5[8] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_47_6[6] = { 0xCE, 0xB1, 0xCE, 0xB2, 0xCF, 0x81 }; +static const symbol s_47_7[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x81 }; +static const symbol s_47_8[2] = { 0xCF, 0x85 }; +static const symbol s_47_9[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCF, 0x81, 0xCF, 0x86 }; +static const symbol s_47_10[6] = { 0xCE, 0xBD, 0xCE, 0xB9, 0xCF, 0x86 }; +static const symbol s_47_11[6] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xB3 }; +static const symbol s_47_12[2] = { 0xCE, 0xB4 }; +static const symbol s_47_13[4] = { 0xCE, 0xB1, 0xCE, 0xB4 }; +static const symbol s_47_14[2] = { 0xCE, 0xB8 }; +static const symbol s_47_15[4] = { 0xCE, 0xB1, 0xCE, 0xB8 }; +static const symbol s_47_16[4] = { 0xCF, 0x83, 0xCE, 0xBA }; +static const symbol s_47_17[6] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBA }; +static const symbol s_47_18[6] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBB }; +static const symbol s_47_19[14] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_47_20[8] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5, 0xCE, 0xBB }; +static const symbol s_47_21[4] = { 0xCE, 0xB5, 0xCE, 0xBC }; +static const symbol s_47_22[4] = { 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_47_23[6] = { 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBD }; +static const symbol s_47_24[10] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBD }; + +static const struct among a_47[25] = +{ +/* 0 */ { 8, s_47_0, -1, 1, 0}, +/* 1 */ { 6, s_47_1, -1, 1, 0}, +/* 2 */ { 8, s_47_2, -1, 1, 0}, +/* 3 */ { 6, s_47_3, -1, 1, 0}, +/* 4 */ { 8, s_47_4, -1, 1, 0}, +/* 5 */ { 8, s_47_5, -1, 1, 0}, +/* 6 */ { 6, s_47_6, -1, 1, 0}, +/* 7 */ { 8, s_47_7, -1, 1, 0}, +/* 8 */ { 2, s_47_8, -1, 1, 0}, +/* 9 */ { 8, s_47_9, -1, 1, 0}, +/* 10 */ { 6, s_47_10, -1, 1, 0}, +/* 11 */ { 6, s_47_11, -1, 1, 0}, +/* 12 */ { 2, s_47_12, -1, 1, 0}, +/* 13 */ { 4, s_47_13, 12, 1, 0}, +/* 14 */ { 2, s_47_14, -1, 1, 0}, +/* 15 */ { 4, s_47_15, 14, 1, 0}, +/* 16 */ { 4, s_47_16, -1, 1, 0}, +/* 17 */ { 6, s_47_17, -1, 1, 0}, +/* 18 */ { 6, s_47_18, -1, 1, 0}, +/* 19 */ { 14, s_47_19, -1, 1, 0}, +/* 20 */ { 8, s_47_20, -1, 1, 0}, +/* 21 */ { 4, s_47_21, -1, 1, 0}, +/* 22 */ { 4, s_47_22, -1, 1, 0}, +/* 23 */ { 6, s_47_23, -1, 1, 0}, +/* 24 */ { 10, s_47_24, -1, 1, 0} +}; + +static const symbol s_48_0[10] = { 0xCF, 0x89, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x83 }; +static const symbol s_48_1[10] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x83 }; + +static const struct among a_48[2] = +{ +/* 0 */ { 10, s_48_0, -1, 1, 0}, +/* 1 */ { 10, s_48_1, -1, 1, 0} +}; + +static const symbol s_49_0[12] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_49_1[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; + +static const struct among a_49[2] = +{ +/* 0 */ { 12, s_49_0, -1, 1, 0}, +/* 1 */ { 14, s_49_1, 0, 1, 0} +}; + +static const symbol s_50_0[2] = { 0xCF, 0x80 }; +static const symbol s_50_1[4] = { 0xCE, 0xB1, 0xCF, 0x80 }; +static const symbol s_50_2[12] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x80 }; +static const symbol s_50_3[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBC, 0xCF, 0x80 }; +static const symbol s_50_4[10] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBC, 0xCF, 0x80 }; +static const symbol s_50_5[14] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x86 }; + +static const struct among a_50[6] = +{ +/* 0 */ { 2, s_50_0, -1, 1, 0}, +/* 1 */ { 4, s_50_1, 0, 1, 0}, +/* 2 */ { 12, s_50_2, 1, 1, 0}, +/* 3 */ { 8, s_50_3, 0, 1, 0}, +/* 4 */ { 10, s_50_4, 3, 1, 0}, +/* 5 */ { 14, s_50_5, -1, 1, 0} +}; + +static const symbol s_51_0[4] = { 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_51_1[6] = { 0xCE, 0xBD, 0xCE, 0xB9, 0xCF, 0x83 }; +static const symbol s_51_2[2] = { 0xCE, 0xB6 }; +static const symbol s_51_3[4] = { 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_51_4[14] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_51_5[10] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xBB }; +static const symbol s_51_6[2] = { 0xCE, 0xBC }; +static const symbol s_51_7[2] = { 0xCE, 0xBE }; +static const symbol s_51_8[6] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF }; + +static const struct among a_51[9] = +{ +/* 0 */ { 4, s_51_0, -1, 1, 0}, +/* 1 */ { 6, s_51_1, -1, 1, 0}, +/* 2 */ { 2, s_51_2, -1, 1, 0}, +/* 3 */ { 4, s_51_3, -1, 1, 0}, +/* 4 */ { 14, s_51_4, 3, 1, 0}, +/* 5 */ { 10, s_51_5, -1, 1, 0}, +/* 6 */ { 2, s_51_6, -1, 1, 0}, +/* 7 */ { 2, s_51_7, -1, 1, 0}, +/* 8 */ { 6, s_51_8, -1, 1, 0} +}; + +static const symbol s_52_0[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_52_1[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1 }; +static const symbol s_52_2[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5 }; + +static const struct among a_52[3] = +{ +/* 0 */ { 12, s_52_0, -1, 1, 0}, +/* 1 */ { 10, s_52_1, -1, 1, 0}, +/* 2 */ { 10, s_52_2, -1, 1, 0} +}; + +static const symbol s_53_0[4] = { 0xCF, 0x83, 0xCF, 0x86 }; +static const symbol s_53_1[8] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB8 }; +static const symbol s_53_2[6] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB8 }; +static const symbol s_53_3[4] = { 0xCE, 0xBF, 0xCE, 0xB8 }; +static const symbol s_53_4[10] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB }; +static const symbol s_53_5[8] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCF, 0x89, 0xCE, 0xBB }; + +static const struct among a_53[6] = +{ +/* 0 */ { 4, s_53_0, -1, 1, 0}, +/* 1 */ { 8, s_53_1, -1, 1, 0}, +/* 2 */ { 6, s_53_2, -1, 1, 0}, +/* 3 */ { 4, s_53_3, -1, 1, 0}, +/* 4 */ { 10, s_53_4, -1, 1, 0}, +/* 5 */ { 8, s_53_5, -1, 1, 0} +}; + +static const symbol s_54_0[2] = { 0xCE, 0xB8 }; +static const symbol s_54_1[10] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB8 }; +static const symbol s_54_2[18] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB8 }; +static const symbol s_54_3[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xB8 }; +static const symbol s_54_4[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB8 }; + +static const struct among a_54[5] = +{ +/* 0 */ { 2, s_54_0, -1, 1, 0}, +/* 1 */ { 10, s_54_1, 0, 1, 0}, +/* 2 */ { 18, s_54_2, 0, 1, 0}, +/* 3 */ { 8, s_54_3, 0, 1, 0}, +/* 4 */ { 8, s_54_4, 0, 1, 0} +}; + +static const symbol s_55_0[8] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_55_1[6] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1 }; +static const symbol s_55_2[6] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5 }; + +static const struct among a_55[3] = +{ +/* 0 */ { 8, s_55_0, -1, 1, 0}, +/* 1 */ { 6, s_55_1, -1, 1, 0}, +/* 2 */ { 6, s_55_2, -1, 1, 0} +}; + +static const symbol s_56_0[8] = { 0xCE, 0xB2, 0xCE, 0xBB, 0xCE, 0xB5, 0xCF, 0x80 }; +static const symbol s_56_1[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_56_2[8] = { 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x89, 0xCF, 0x84 }; +static const symbol s_56_3[10] = { 0xCE, 0xBA, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_56_4[12] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x87 }; +static const symbol s_56_5[6] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x87 }; +static const symbol s_56_6[6] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCE, 0xB3 }; +static const symbol s_56_7[6] = { 0xCE, 0xBB, 0xCE, 0xB7, 0xCE, 0xB3 }; +static const symbol s_56_8[8] = { 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x85, 0xCE, 0xB4 }; +static const symbol s_56_9[12] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBB }; +static const symbol s_56_10[8] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB }; +static const symbol s_56_11[4] = { 0xCE, 0xBF, 0xCE, 0xBC }; + +static const struct among a_56[12] = +{ +/* 0 */ { 8, s_56_0, -1, 1, 0}, +/* 1 */ { 10, s_56_1, -1, 1, 0}, +/* 2 */ { 8, s_56_2, -1, 1, 0}, +/* 3 */ { 10, s_56_3, -1, 1, 0}, +/* 4 */ { 12, s_56_4, -1, 1, 0}, +/* 5 */ { 6, s_56_5, -1, 1, 0}, +/* 6 */ { 6, s_56_6, -1, 1, 0}, +/* 7 */ { 6, s_56_7, -1, 1, 0}, +/* 8 */ { 8, s_56_8, -1, 1, 0}, +/* 9 */ { 12, s_56_9, -1, 1, 0}, +/* 10 */ { 8, s_56_10, -1, 1, 0}, +/* 11 */ { 4, s_56_11, -1, 1, 0} +}; + +static const symbol s_57_0[10] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x80 }; +static const symbol s_57_1[2] = { 0xCF, 0x81 }; +static const symbol s_57_2[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x81 }; +static const symbol s_57_3[16] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x86, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_57_4[6] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_57_5[14] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x85 }; +static const symbol s_57_6[16] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x85 }; +static const symbol s_57_7[6] = { 0xCE, 0xBB, 0xCE, 0xB5, 0xCF, 0x87 }; +static const symbol s_57_8[6] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1 }; +static const symbol s_57_9[6] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCE, 0xB4 }; +static const symbol s_57_10[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB4 }; +static const symbol s_57_11[12] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB4 }; +static const symbol s_57_12[4] = { 0xCE, 0xB4, 0xCE, 0xB5 }; +static const symbol s_57_13[6] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB5 }; +static const symbol s_57_14[10] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB6 }; +static const symbol s_57_15[12] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB6 }; +static const symbol s_57_16[6] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xB8 }; +static const symbol s_57_17[12] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBA }; +static const symbol s_57_18[6] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBA }; +static const symbol s_57_19[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB7, 0xCE, 0xBA }; +static const symbol s_57_20[2] = { 0xCE, 0xBB }; +static const symbol s_57_21[2] = { 0xCE, 0xBC }; +static const symbol s_57_22[4] = { 0xCE, 0xB1, 0xCE, 0xBC }; +static const symbol s_57_23[8] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBC }; +static const symbol s_57_24[14] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xB9, 0xCE, 0xBD }; + +static const struct among a_57[25] = +{ +/* 0 */ { 10, s_57_0, -1, 1, 0}, +/* 1 */ { 2, s_57_1, -1, 1, 0}, +/* 2 */ { 10, s_57_2, 1, 1, 0}, +/* 3 */ { 16, s_57_3, 1, 1, 0}, +/* 4 */ { 6, s_57_4, -1, 1, 0}, +/* 5 */ { 14, s_57_5, -1, 1, 0}, +/* 6 */ { 16, s_57_6, -1, 1, 0}, +/* 7 */ { 6, s_57_7, -1, 1, 0}, +/* 8 */ { 6, s_57_8, -1, 1, 0}, +/* 9 */ { 6, s_57_9, -1, 1, 0}, +/* 10 */ { 6, s_57_10, -1, 1, 0}, +/* 11 */ { 12, s_57_11, -1, 1, 0}, +/* 12 */ { 4, s_57_12, -1, 1, 0}, +/* 13 */ { 6, s_57_13, -1, 1, 0}, +/* 14 */ { 10, s_57_14, -1, 1, 0}, +/* 15 */ { 12, s_57_15, -1, 1, 0}, +/* 16 */ { 6, s_57_16, -1, 1, 0}, +/* 17 */ { 12, s_57_17, -1, 1, 0}, +/* 18 */ { 6, s_57_18, -1, 1, 0}, +/* 19 */ { 8, s_57_19, -1, 1, 0}, +/* 20 */ { 2, s_57_20, -1, 1, 0}, +/* 21 */ { 2, s_57_21, -1, 1, 0}, +/* 22 */ { 4, s_57_22, 21, 1, 0}, +/* 23 */ { 8, s_57_23, 21, 1, 0}, +/* 24 */ { 14, s_57_24, -1, 1, 0} +}; + +static const symbol s_58_0[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_58_1[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1 }; +static const symbol s_58_2[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB5 }; + +static const struct among a_58[3] = +{ +/* 0 */ { 10, s_58_0, -1, 1, 0}, +/* 1 */ { 8, s_58_1, -1, 1, 0}, +/* 2 */ { 8, s_58_2, -1, 1, 0} +}; + +static const symbol s_59_0[6] = { 0xCF, 0x88, 0xCE, 0xBF, 0xCF, 0x86 }; +static const symbol s_59_1[12] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x87 }; + +static const struct among a_59[2] = +{ +/* 0 */ { 6, s_59_0, -1, -1, 0}, +/* 1 */ { 12, s_59_1, -1, -1, 0} +}; + +static const symbol s_60_0[4] = { 0xCF, 0x81, 0xCF, 0x80 }; +static const symbol s_60_1[4] = { 0xCF, 0x80, 0xCF, 0x81 }; +static const symbol s_60_2[4] = { 0xCF, 0x86, 0xCF, 0x81 }; +static const symbol s_60_3[8] = { 0xCF, 0x87, 0xCE, 0xBF, 0xCF, 0x81, 0xCF, 0x84 }; +static const symbol s_60_4[4] = { 0xCF, 0x83, 0xCF, 0x86 }; +static const symbol s_60_5[4] = { 0xCE, 0xBF, 0xCF, 0x86 }; +static const symbol s_60_6[6] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x87 }; +static const symbol s_60_7[6] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBB }; +static const symbol s_60_8[4] = { 0xCE, 0xBB, 0xCE, 0xBB }; +static const symbol s_60_9[8] = { 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBD }; + +static const struct among a_60[10] = +{ +/* 0 */ { 4, s_60_0, -1, 1, 0}, +/* 1 */ { 4, s_60_1, -1, 1, 0}, +/* 2 */ { 4, s_60_2, -1, 1, 0}, +/* 3 */ { 8, s_60_3, -1, 1, 0}, +/* 4 */ { 4, s_60_4, -1, 1, 0}, +/* 5 */ { 4, s_60_5, -1, 1, 0}, +/* 6 */ { 6, s_60_6, -1, 1, 0}, +/* 7 */ { 6, s_60_7, -1, 1, 0}, +/* 8 */ { 4, s_60_8, -1, 1, 0}, +/* 9 */ { 8, s_60_9, -1, 1, 0} +}; + +static const symbol s_61_0[2] = { 0xCF, 0x80 }; +static const symbol s_61_1[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x80 }; +static const symbol s_61_2[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x85, 0xCF, 0x80 }; +static const symbol s_61_3[10] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xB9, 0xCF, 0x80 }; +static const symbol s_61_4[8] = { 0xCE, 0xB1, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x80 }; +static const symbol s_61_5[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBC, 0xCF, 0x80 }; +static const symbol s_61_6[16] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x89, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_61_7[14] = { 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_61_8[12] = { 0xCE, 0xB4, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_61_9[8] = { 0xCE, 0xBD, 0xCE, 0xB5, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_61_10[16] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_61_11[8] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_61_12[2] = { 0xCF, 0x81 }; +static const symbol s_61_13[4] = { 0xCF, 0x84, 0xCF, 0x81 }; +static const symbol s_61_14[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x81 }; +static const symbol s_61_15[10] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_61_16[6] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_61_17[8] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81 }; +static const symbol s_61_18[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_61_19[2] = { 0xCF, 0x84 }; +static const symbol s_61_20[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x85, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_61_21[10] = { 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_61_22[10] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_61_23[12] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_61_24[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_61_25[8] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB9, 0xCF, 0x84 }; +static const symbol s_61_26[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84 }; +static const symbol s_61_27[8] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84 }; +static const symbol s_61_28[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84 }; +static const symbol s_61_29[8] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x84 }; +static const symbol s_61_30[10] = { 0xCE, 0xBD, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x84 }; +static const symbol s_61_31[6] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x85 }; +static const symbol s_61_32[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCF, 0x86 }; +static const symbol s_61_33[4] = { 0xCE, 0xB1, 0xCF, 0x86 }; +static const symbol s_61_34[6] = { 0xCE, 0xBE, 0xCE, 0xB5, 0xCF, 0x86 }; +static const symbol s_61_35[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xB7, 0xCF, 0x86 }; +static const symbol s_61_36[8] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x86 }; +static const symbol s_61_37[12] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB, 0xCE, 0xB9 }; +static const symbol s_61_38[2] = { 0xCE, 0xBB }; +static const symbol s_61_39[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB }; +static const symbol s_61_40[2] = { 0xCE, 0xBC }; +static const symbol s_61_41[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xBC }; +static const symbol s_61_42[4] = { 0xCE, 0xB5, 0xCE, 0xBD }; +static const symbol s_61_43[12] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBD }; + +static const struct among a_61[44] = +{ +/* 0 */ { 2, s_61_0, -1, 1, 0}, +/* 1 */ { 6, s_61_1, 0, 1, 0}, +/* 2 */ { 8, s_61_2, 0, 1, 0}, +/* 3 */ { 10, s_61_3, 0, 1, 0}, +/* 4 */ { 8, s_61_4, 0, 1, 0}, +/* 5 */ { 8, s_61_5, 0, 1, 0}, +/* 6 */ { 16, s_61_6, 0, 1, 0}, +/* 7 */ { 14, s_61_7, 0, 1, 0}, +/* 8 */ { 12, s_61_8, 0, 1, 0}, +/* 9 */ { 8, s_61_9, 0, 1, 0}, +/* 10 */ { 16, s_61_10, 0, 1, 0}, +/* 11 */ { 8, s_61_11, 0, 1, 0}, +/* 12 */ { 2, s_61_12, -1, 1, 0}, +/* 13 */ { 4, s_61_13, 12, 1, 0}, +/* 14 */ { 6, s_61_14, 12, 1, 0}, +/* 15 */ { 10, s_61_15, 12, 1, 0}, +/* 16 */ { 6, s_61_16, 12, 1, 0}, +/* 17 */ { 8, s_61_17, 16, 1, 0}, +/* 18 */ { 8, s_61_18, 12, 1, 0}, +/* 19 */ { 2, s_61_19, -1, 1, 0}, +/* 20 */ { 10, s_61_20, 19, 1, 0}, +/* 21 */ { 10, s_61_21, 19, 1, 0}, +/* 22 */ { 10, s_61_22, 19, 1, 0}, +/* 23 */ { 12, s_61_23, 19, 1, 0}, +/* 24 */ { 8, s_61_24, 19, 1, 0}, +/* 25 */ { 8, s_61_25, 19, 1, 0}, +/* 26 */ { 8, s_61_26, 19, 1, 0}, +/* 27 */ { 8, s_61_27, 19, 1, 0}, +/* 28 */ { 8, s_61_28, 19, 1, 0}, +/* 29 */ { 8, s_61_29, 19, 1, 0}, +/* 30 */ { 10, s_61_30, 29, 1, 0}, +/* 31 */ { 6, s_61_31, -1, 1, 0}, +/* 32 */ { 10, s_61_32, -1, 1, 0}, +/* 33 */ { 4, s_61_33, -1, 1, 0}, +/* 34 */ { 6, s_61_34, -1, 1, 0}, +/* 35 */ { 8, s_61_35, -1, 1, 0}, +/* 36 */ { 8, s_61_36, -1, 1, 0}, +/* 37 */ { 12, s_61_37, -1, 1, 0}, +/* 38 */ { 2, s_61_38, -1, 1, 0}, +/* 39 */ { 8, s_61_39, 38, 1, 0}, +/* 40 */ { 2, s_61_40, -1, 1, 0}, +/* 41 */ { 10, s_61_41, 40, 1, 0}, +/* 42 */ { 4, s_61_42, -1, 1, 0}, +/* 43 */ { 12, s_61_43, 42, 1, 0} +}; + +static const symbol s_62_0[8] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_62_1[6] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1 }; +static const symbol s_62_2[6] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB5 }; + +static const struct among a_62[3] = +{ +/* 0 */ { 8, s_62_0, -1, 1, 0}, +/* 1 */ { 6, s_62_1, -1, 1, 0}, +/* 2 */ { 6, s_62_2, -1, 1, 0} +}; + +static const symbol s_63_0[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_63_1[6] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1 }; +static const symbol s_63_2[6] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5 }; + +static const struct among a_63[3] = +{ +/* 0 */ { 8, s_63_0, -1, 1, 0}, +/* 1 */ { 6, s_63_1, -1, 1, 0}, +/* 2 */ { 6, s_63_2, -1, 1, 0} +}; + +static const symbol s_64_0[2] = { 0xCE, 0xBD }; +static const symbol s_64_1[10] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_64_2[14] = { 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_64_3[12] = { 0xCF, 0x87, 0xCE, 0xB5, 0xCF, 0x81, 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xBD }; +static const symbol s_64_4[14] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xBD }; +static const symbol s_64_5[12] = { 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB7, 0xCE, 0xBC, 0xCE, 0xBF, 0xCE, 0xBD }; + +static const struct among a_64[6] = +{ +/* 0 */ { 2, s_64_0, -1, 1, 0}, +/* 1 */ { 10, s_64_1, 0, 1, 0}, +/* 2 */ { 14, s_64_2, 0, 1, 0}, +/* 3 */ { 12, s_64_3, 0, 1, 0}, +/* 4 */ { 14, s_64_4, 0, 1, 0}, +/* 5 */ { 12, s_64_5, 0, 1, 0} +}; + +static const symbol s_65_0[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; + +static const struct among a_65[1] = +{ +/* 0 */ { 8, s_65_0, -1, 1, 0} +}; + +static const symbol s_66_0[4] = { 0xCF, 0x87, 0xCF, 0x81 }; +static const symbol s_66_1[10] = { 0xCE, 0xB4, 0xCF, 0x85, 0xCF, 0x83, 0xCF, 0x87, 0xCF, 0x81 }; +static const symbol s_66_2[8] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x87, 0xCF, 0x81 }; +static const symbol s_66_3[6] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCF, 0x81 }; +static const symbol s_66_4[14] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xB9, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x87, 0xCF, 0x81 }; +static const symbol s_66_5[12] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xBC, 0xCF, 0x88 }; +static const symbol s_66_6[4] = { 0xCF, 0x83, 0xCE, 0xB2 }; +static const symbol s_66_7[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB2 }; +static const symbol s_66_8[6] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBB }; +static const symbol s_66_9[10] = { 0xCE, 0xB1, 0xCE, 0xB5, 0xCE, 0xB9, 0xCE, 0xBC, 0xCE, 0xBD }; + +static const struct among a_66[10] = +{ +/* 0 */ { 4, s_66_0, -1, 1, 0}, +/* 1 */ { 10, s_66_1, 0, 1, 0}, +/* 2 */ { 8, s_66_2, 0, 1, 0}, +/* 3 */ { 6, s_66_3, 0, 1, 0}, +/* 4 */ { 14, s_66_4, 0, 1, 0}, +/* 5 */ { 12, s_66_5, -1, 1, 0}, +/* 6 */ { 4, s_66_6, -1, 1, 0}, +/* 7 */ { 6, s_66_7, 6, 1, 0}, +/* 8 */ { 6, s_66_8, -1, 1, 0}, +/* 9 */ { 10, s_66_9, -1, 1, 0} +}; + +static const symbol s_67_0[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_67_1[12] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_67_2[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 }; + +static const struct among a_67[3] = +{ +/* 0 */ { 8, s_67_0, -1, 1, 0}, +/* 1 */ { 12, s_67_1, 0, 1, 0}, +/* 2 */ { 12, s_67_2, 0, 1, 0} +}; + +static const symbol s_68_0[2] = { 0xCF, 0x81 }; +static const symbol s_68_1[22] = { 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x84, 0xCF, 0x83 }; +static const symbol s_68_2[18] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x84, 0xCF, 0x83 }; +static const symbol s_68_3[6] = { 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xB9 }; +static const symbol s_68_4[2] = { 0xCE, 0xBD }; +static const symbol s_68_5[8] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCF, 0x89, 0xCE, 0xBD }; + +static const struct among a_68[6] = +{ +/* 0 */ { 2, s_68_0, -1, 1, 0}, +/* 1 */ { 22, s_68_1, -1, 1, 0}, +/* 2 */ { 18, s_68_2, -1, 1, 0}, +/* 3 */ { 6, s_68_3, -1, 1, 0}, +/* 4 */ { 2, s_68_4, -1, 1, 0}, +/* 5 */ { 8, s_68_5, 4, 1, 0} +}; + +static const symbol s_69_0[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_69_1[12] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_69_2[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 }; + +static const struct among a_69[3] = +{ +/* 0 */ { 8, s_69_0, -1, 1, 0}, +/* 1 */ { 12, s_69_1, 0, 1, 0}, +/* 2 */ { 12, s_69_2, 0, 1, 0} +}; + +static const symbol s_70_0[10] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_70_1[16] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_70_2[16] = { 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_70_3[2] = { 0xCF, 0x86 }; +static const symbol s_70_4[2] = { 0xCF, 0x87 }; +static const symbol s_70_5[4] = { 0xCE, 0xB1, 0xCE, 0xB6 }; +static const symbol s_70_6[12] = { 0xCF, 0x89, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xBB }; + +static const struct among a_70[7] = +{ +/* 0 */ { 10, s_70_0, -1, 1, 0}, +/* 1 */ { 16, s_70_1, 0, 1, 0}, +/* 2 */ { 16, s_70_2, -1, 1, 0}, +/* 3 */ { 2, s_70_3, -1, 1, 0}, +/* 4 */ { 2, s_70_4, -1, 1, 0}, +/* 5 */ { 4, s_70_5, -1, 1, 0}, +/* 6 */ { 12, s_70_6, -1, 1, 0} +}; + +static const symbol s_71_0[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_71_1[8] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 }; +static const symbol s_71_2[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD }; + +static const struct among a_71[3] = +{ +/* 0 */ { 10, s_71_0, -1, 1, 0}, +/* 1 */ { 8, s_71_1, -1, 1, 0}, +/* 2 */ { 10, s_71_2, -1, 1, 0} +}; + +static const symbol s_72_0[4] = { 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_72_1[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_72_2[4] = { 0xCE, 0xB1, 0xCF, 0x83 }; +static const symbol s_72_3[4] = { 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_72_4[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_72_5[8] = { 0xCE, 0xB7, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 }; +static const symbol s_72_6[4] = { 0xCE, 0xB7, 0xCF, 0x83 }; +static const symbol s_72_7[6] = { 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 }; +static const symbol s_72_8[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 }; +static const symbol s_72_9[4] = { 0xCE, 0xBF, 0xCF, 0x83 }; +static const symbol s_72_10[2] = { 0xCF, 0x85 }; +static const symbol s_72_11[4] = { 0xCE, 0xBF, 0xCF, 0x85 }; +static const symbol s_72_12[2] = { 0xCF, 0x89 }; +static const symbol s_72_13[6] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCF, 0x89 }; +static const symbol s_72_14[4] = { 0xCE, 0xB1, 0xCF, 0x89 }; +static const symbol s_72_15[6] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCF, 0x89 }; +static const symbol s_72_16[2] = { 0xCE, 0xB1 }; +static const symbol s_72_17[10] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1 }; +static const symbol s_72_18[12] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 }; +static const symbol s_72_19[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 }; +static const symbol s_72_20[12] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 }; +static const symbol s_72_21[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 }; +static const symbol s_72_22[2] = { 0xCE, 0xB5 }; +static const symbol s_72_23[14] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_24[12] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_25[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_26[14] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_27[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_28[14] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_29[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_30[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_31[10] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_32[10] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_33[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_34[8] = { 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_35[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_72_36[2] = { 0xCE, 0xB7 }; +static const symbol s_72_37[2] = { 0xCE, 0xB9 }; +static const symbol s_72_38[8] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_39[8] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_40[10] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_41[8] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_42[8] = { 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_43[10] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_44[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_45[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_46[10] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_47[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_48[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_49[10] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_50[8] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 }; +static const symbol s_72_51[4] = { 0xCE, 0xB5, 0xCE, 0xB9 }; +static const symbol s_72_52[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5, 0xCE, 0xB9 }; +static const symbol s_72_53[6] = { 0xCE, 0xB1, 0xCE, 0xB5, 0xCE, 0xB9 }; +static const symbol s_72_54[8] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9 }; +static const symbol s_72_55[4] = { 0xCE, 0xBF, 0xCE, 0xB9 }; +static const symbol s_72_56[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_72_57[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_72_58[10] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_72_59[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_72_60[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_72_61[10] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_72_62[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_72_63[4] = { 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_72_64[8] = { 0xCE, 0xB7, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_72_65[4] = { 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_66[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_67[16] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_68[18] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_69[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_70[14] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_71[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_72[14] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_73[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_74[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_75[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_76[10] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_77[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_78[8] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_79[10] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_80[8] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_81[8] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_82[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_72_83[2] = { 0xCE, 0xBF }; + +static const struct among a_72[84] = +{ +/* 0 */ { 4, s_72_0, -1, 1, 0}, +/* 1 */ { 6, s_72_1, 0, 1, 0}, +/* 2 */ { 4, s_72_2, -1, 1, 0}, +/* 3 */ { 4, s_72_3, -1, 1, 0}, +/* 4 */ { 8, s_72_4, 3, 1, 0}, +/* 5 */ { 8, s_72_5, 3, 1, 0}, +/* 6 */ { 4, s_72_6, -1, 1, 0}, +/* 7 */ { 6, s_72_7, -1, 1, 0}, +/* 8 */ { 10, s_72_8, 7, 1, 0}, +/* 9 */ { 4, s_72_9, -1, 1, 0}, +/* 10 */ { 2, s_72_10, -1, 1, 0}, +/* 11 */ { 4, s_72_11, 10, 1, 0}, +/* 12 */ { 2, s_72_12, -1, 1, 0}, +/* 13 */ { 6, s_72_13, 12, 1, 0}, +/* 14 */ { 4, s_72_14, 12, 1, 0}, +/* 15 */ { 6, s_72_15, 12, 1, 0}, +/* 16 */ { 2, s_72_16, -1, 1, 0}, +/* 17 */ { 10, s_72_17, 16, 1, 0}, +/* 18 */ { 12, s_72_18, 16, 1, 0}, +/* 19 */ { 14, s_72_19, 18, 1, 0}, +/* 20 */ { 12, s_72_20, 16, 1, 0}, +/* 21 */ { 14, s_72_21, 20, 1, 0}, +/* 22 */ { 2, s_72_22, -1, 1, 0}, +/* 23 */ { 14, s_72_23, 22, 1, 0}, +/* 24 */ { 12, s_72_24, 22, 1, 0}, +/* 25 */ { 14, s_72_25, 24, 1, 0}, +/* 26 */ { 14, s_72_26, 22, 1, 0}, +/* 27 */ { 16, s_72_27, 26, 1, 0}, +/* 28 */ { 14, s_72_28, 22, 1, 0}, +/* 29 */ { 12, s_72_29, 22, 1, 0}, +/* 30 */ { 10, s_72_30, 22, 1, 0}, +/* 31 */ { 10, s_72_31, 22, 1, 0}, +/* 32 */ { 10, s_72_32, 22, 1, 0}, +/* 33 */ { 14, s_72_33, 32, 1, 0}, +/* 34 */ { 8, s_72_34, 22, 1, 0}, +/* 35 */ { 12, s_72_35, 34, 1, 0}, +/* 36 */ { 2, s_72_36, -1, 1, 0}, +/* 37 */ { 2, s_72_37, -1, 1, 0}, +/* 38 */ { 8, s_72_38, 37, 1, 0}, +/* 39 */ { 8, s_72_39, 37, 1, 0}, +/* 40 */ { 10, s_72_40, 39, 1, 0}, +/* 41 */ { 8, s_72_41, 37, 1, 0}, +/* 42 */ { 8, s_72_42, 37, 1, 0}, +/* 43 */ { 10, s_72_43, 42, 1, 0}, +/* 44 */ { 12, s_72_44, 37, 1, 0}, +/* 45 */ { 14, s_72_45, 44, 1, 0}, +/* 46 */ { 10, s_72_46, 37, 1, 0}, +/* 47 */ { 10, s_72_47, 37, 1, 0}, +/* 48 */ { 8, s_72_48, 37, 1, 0}, +/* 49 */ { 10, s_72_49, 37, 1, 0}, +/* 50 */ { 8, s_72_50, 37, 1, 0}, +/* 51 */ { 4, s_72_51, 37, 1, 0}, +/* 52 */ { 8, s_72_52, 51, 1, 0}, +/* 53 */ { 6, s_72_53, 51, 1, 0}, +/* 54 */ { 8, s_72_54, 51, 1, 0}, +/* 55 */ { 4, s_72_55, 37, 1, 0}, +/* 56 */ { 6, s_72_56, -1, 1, 0}, +/* 57 */ { 10, s_72_57, 56, 1, 0}, +/* 58 */ { 10, s_72_58, 56, 1, 0}, +/* 59 */ { 12, s_72_59, 58, 1, 0}, +/* 60 */ { 10, s_72_60, 56, 1, 0}, +/* 61 */ { 10, s_72_61, 56, 1, 0}, +/* 62 */ { 12, s_72_62, 61, 1, 0}, +/* 63 */ { 4, s_72_63, -1, 1, 0}, +/* 64 */ { 8, s_72_64, 63, 1, 0}, +/* 65 */ { 4, s_72_65, -1, 1, 0}, +/* 66 */ { 10, s_72_66, 65, 1, 0}, +/* 67 */ { 16, s_72_67, 66, 1, 0}, +/* 68 */ { 18, s_72_68, 67, 1, 0}, +/* 69 */ { 8, s_72_69, 65, 1, 0}, +/* 70 */ { 14, s_72_70, 65, 1, 0}, +/* 71 */ { 16, s_72_71, 70, 1, 0}, +/* 72 */ { 14, s_72_72, 65, 1, 0}, +/* 73 */ { 16, s_72_73, 72, 1, 0}, +/* 74 */ { 12, s_72_74, 65, 1, 0}, +/* 75 */ { 14, s_72_75, 74, 1, 0}, +/* 76 */ { 10, s_72_76, 65, 1, 0}, +/* 77 */ { 12, s_72_77, 76, 1, 0}, +/* 78 */ { 8, s_72_78, 65, 1, 0}, +/* 79 */ { 10, s_72_79, 78, 1, 0}, +/* 80 */ { 8, s_72_80, 65, 1, 0}, +/* 81 */ { 8, s_72_81, 65, 1, 0}, +/* 82 */ { 12, s_72_82, 81, 1, 0}, +/* 83 */ { 2, s_72_83, -1, 1, 0} +}; + +static const symbol s_73_0[10] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_73_1[8] = { 0xCF, 0x85, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_73_2[8] = { 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_73_3[8] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_73_4[10] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_73_5[8] = { 0xCF, 0x85, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_73_6[8] = { 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 }; +static const symbol s_73_7[8] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 }; + +static const struct among a_73[8] = +{ +/* 0 */ { 10, s_73_0, -1, 1, 0}, +/* 1 */ { 8, s_73_1, -1, 1, 0}, +/* 2 */ { 8, s_73_2, -1, 1, 0}, +/* 3 */ { 8, s_73_3, -1, 1, 0}, +/* 4 */ { 10, s_73_4, -1, 1, 0}, +/* 5 */ { 8, s_73_5, -1, 1, 0}, +/* 6 */ { 8, s_73_6, -1, 1, 0}, +/* 7 */ { 8, s_73_7, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 81, 65, 16, 1 }; + +static const unsigned char g_v2[] = { 81, 65, 0, 1 }; + +static const symbol s_0[] = { 0xCE, 0xB1 }; +static const symbol s_1[] = { 0xCE, 0xB2 }; +static const symbol s_2[] = { 0xCE, 0xB3 }; +static const symbol s_3[] = { 0xCE, 0xB4 }; +static const symbol s_4[] = { 0xCE, 0xB5 }; +static const symbol s_5[] = { 0xCE, 0xB6 }; +static const symbol s_6[] = { 0xCE, 0xB7 }; +static const symbol s_7[] = { 0xCE, 0xB8 }; +static const symbol s_8[] = { 0xCE, 0xB9 }; +static const symbol s_9[] = { 0xCE, 0xBA }; +static const symbol s_10[] = { 0xCE, 0xBB }; +static const symbol s_11[] = { 0xCE, 0xBC }; +static const symbol s_12[] = { 0xCE, 0xBD }; +static const symbol s_13[] = { 0xCE, 0xBE }; +static const symbol s_14[] = { 0xCE, 0xBF }; +static const symbol s_15[] = { 0xCF, 0x80 }; +static const symbol s_16[] = { 0xCF, 0x81 }; +static const symbol s_17[] = { 0xCF, 0x83 }; +static const symbol s_18[] = { 0xCF, 0x84 }; +static const symbol s_19[] = { 0xCF, 0x85 }; +static const symbol s_20[] = { 0xCF, 0x86 }; +static const symbol s_21[] = { 0xCF, 0x87 }; +static const symbol s_22[] = { 0xCF, 0x88 }; +static const symbol s_23[] = { 0xCF, 0x89 }; +static const symbol s_24[] = { 0xCF, 0x86, 0xCE, 0xB1 }; +static const symbol s_25[] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB1 }; +static const symbol s_26[] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF }; +static const symbol s_27[] = { 0xCF, 0x83, 0xCE, 0xBF }; +static const symbol s_28[] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF }; +static const symbol s_29[] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5 }; +static const symbol s_30[] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_31[] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 }; +static const symbol s_32[] = { 0xCF, 0x86, 0xCF, 0x89 }; +static const symbol s_33[] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_34[] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xBD }; +static const symbol s_35[] = { 0xCE, 0xB9 }; +static const symbol s_36[] = { 0xCE, 0xB9, 0xCE, 0xB6 }; +static const symbol s_37[] = { 0xCF, 0x89, 0xCE, 0xBD }; +static const symbol s_38[] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1 }; +static const symbol s_39[] = { 0xCE, 0xB9, 0xCF, 0x83 }; +static const symbol s_40[] = { 0xCE, 0xB9 }; +static const symbol s_41[] = { 0xCE, 0xB9, 0xCF, 0x83 }; +static const symbol s_42[] = { 0xCE, 0xB9 }; +static const symbol s_43[] = { 0xCE, 0xB9 }; +static const symbol s_44[] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_45[] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC }; +static const symbol s_46[] = { 0xCE, 0xB9 }; +static const symbol s_47[] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBD, 0xCF, 0x89, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_48[] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBC }; +static const symbol s_49[] = { 0xCE, 0xB3, 0xCE, 0xBD, 0xCF, 0x89, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_50[] = { 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBD }; +static const symbol s_51[] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBA, 0xCF, 0x84 }; +static const symbol s_52[] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x80, 0xCF, 0x84 }; +static const symbol s_53[] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80 }; +static const symbol s_54[] = { 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB4, 0xCF, 0x81 }; +static const symbol s_55[] = { 0xCE, 0xB2, 0xCF, 0x85, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84 }; +static const symbol s_56[] = { 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x81 }; +static const symbol s_57[] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA }; +static const symbol s_58[] = { 0xCE, 0xB1, 0xCE, 0xBA }; +static const symbol s_59[] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83 }; +static const symbol s_60[] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81 }; +static const symbol s_61[] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83 }; +static const symbol s_62[] = { 0xCE, 0xB9, 0xCE, 0xB4 }; +static const symbol s_63[] = { 0xCE, 0xB9, 0xCE, 0xB4 }; +static const symbol s_64[] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA }; +static const symbol s_65[] = { 0xCE, 0xB1, 0xCE, 0xB4 }; +static const symbol s_66[] = { 0xCE, 0xB5, 0xCE, 0xB4 }; +static const symbol s_67[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4 }; +static const symbol s_68[] = { 0xCE, 0xB5 }; +static const symbol s_69[] = { 0xCE, 0xB9 }; +static const symbol s_70[] = { 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_71[] = { 0xCE, 0xB9, 0xCE, 0xBA }; +static const symbol s_72[] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_73[] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBC }; +static const symbol s_74[] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; +static const symbol s_75[] = { 0xCE, 0xB1, 0xCE, 0xBC }; +static const symbol s_76[] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_77[] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; +static const symbol s_78[] = { 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_79[] = { 0xCE, 0xB1, 0xCE, 0xBD }; +static const symbol s_80[] = { 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_81[] = { 0xCE, 0xB5, 0xCF, 0x84 }; +static const symbol s_82[] = { 0xCE, 0xB5, 0xCF, 0x84 }; +static const symbol s_83[] = { 0xCE, 0xB5, 0xCF, 0x84 }; +static const symbol s_84[] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x87 }; +static const symbol s_85[] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84 }; +static const symbol s_86[] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5 }; +static const symbol s_87[] = { 0xCF, 0x89, 0xCE, 0xBD, 0xCF, 0x84 }; +static const symbol s_88[] = { 0xCE, 0xBF, 0xCE, 0xBD }; +static const symbol s_89[] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_90[] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_91[] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_92[] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; +static const symbol s_93[] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_94[] = { 0xCE, 0xB7, 0xCE, 0xBA }; +static const symbol s_95[] = { 0xCE, 0xB7, 0xCE, 0xBA }; +static const symbol s_96[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_97[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; +static const symbol s_98[] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBB }; +static const symbol s_99[] = { 0xCE, 0xB1, 0xCE, 0xB3 }; +static const symbol s_100[] = { 0xCE, 0xB1, 0xCE, 0xB3 }; +static const symbol s_101[] = { 0xCE, 0xB1, 0xCE, 0xB3 }; +static const symbol s_102[] = { 0xCE, 0xB7, 0xCF, 0x83 }; +static const symbol s_103[] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCF, 0x84 }; +static const symbol s_104[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; +static const symbol s_105[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC }; +static const symbol s_106[] = { 0xCE, 0xBC, 0xCE, 0xB1 }; + +static int r_has_min_length(struct SN_env * z) { /* backwardmode */ + if (!(len_utf8(z->p) >= 3)) return 0; /* $(<integer expression> >= <integer expression>), line 111 */ + return 1; +} + +static int r_tolower(struct SN_env * z) { /* backwardmode */ + int among_var; + while(1) { /* repeat, line 115 */ + int m1 = z->l - z->c; (void)m1; + z->ket = z->c; /* [, line 116 */ + among_var = find_among_b(z, a_0, 46); /* substring, line 116 */ + if (!(among_var)) goto lab0; + z->bra = z->c; /* ], line 116 */ + switch (among_var) { /* among, line 116 */ + case 1: + { int ret = slice_from_s(z, 2, s_0); /* <-, line 117 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 2, s_1); /* <-, line 118 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 2, s_2); /* <-, line 119 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 2, s_3); /* <-, line 120 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 2, s_4); /* <-, line 121 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_from_s(z, 2, s_5); /* <-, line 122 */ + if (ret < 0) return ret; + } + break; + case 7: + { int ret = slice_from_s(z, 2, s_6); /* <-, line 123 */ + if (ret < 0) return ret; + } + break; + case 8: + { int ret = slice_from_s(z, 2, s_7); /* <-, line 124 */ + if (ret < 0) return ret; + } + break; + case 9: + { int ret = slice_from_s(z, 2, s_8); /* <-, line 125 */ + if (ret < 0) return ret; + } + break; + case 10: + { int ret = slice_from_s(z, 2, s_9); /* <-, line 126 */ + if (ret < 0) return ret; + } + break; + case 11: + { int ret = slice_from_s(z, 2, s_10); /* <-, line 127 */ + if (ret < 0) return ret; + } + break; + case 12: + { int ret = slice_from_s(z, 2, s_11); /* <-, line 128 */ + if (ret < 0) return ret; + } + break; + case 13: + { int ret = slice_from_s(z, 2, s_12); /* <-, line 129 */ + if (ret < 0) return ret; + } + break; + case 14: + { int ret = slice_from_s(z, 2, s_13); /* <-, line 130 */ + if (ret < 0) return ret; + } + break; + case 15: + { int ret = slice_from_s(z, 2, s_14); /* <-, line 131 */ + if (ret < 0) return ret; + } + break; + case 16: + { int ret = slice_from_s(z, 2, s_15); /* <-, line 132 */ + if (ret < 0) return ret; + } + break; + case 17: + { int ret = slice_from_s(z, 2, s_16); /* <-, line 133 */ + if (ret < 0) return ret; + } + break; + case 18: + { int ret = slice_from_s(z, 2, s_17); /* <-, line 134 */ + if (ret < 0) return ret; + } + break; + case 19: + { int ret = slice_from_s(z, 2, s_18); /* <-, line 135 */ + if (ret < 0) return ret; + } + break; + case 20: + { int ret = slice_from_s(z, 2, s_19); /* <-, line 136 */ + if (ret < 0) return ret; + } + break; + case 21: + { int ret = slice_from_s(z, 2, s_20); /* <-, line 137 */ + if (ret < 0) return ret; + } + break; + case 22: + { int ret = slice_from_s(z, 2, s_21); /* <-, line 138 */ + if (ret < 0) return ret; + } + break; + case 23: + { int ret = slice_from_s(z, 2, s_22); /* <-, line 139 */ + if (ret < 0) return ret; + } + break; + case 24: + { int ret = slice_from_s(z, 2, s_23); /* <-, line 140 */ + if (ret < 0) return ret; + } + break; + case 25: + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 162 */ + } + break; + } + continue; + lab0: + z->c = z->l - m1; + break; + } + return 1; +} + +static int r_step1(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 168 */ + among_var = find_among_b(z, a_1, 40); /* substring, line 168 */ + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 168 */ + switch (among_var) { /* among, line 168 */ + case 1: + { int ret = slice_from_s(z, 4, s_24); /* <-, line 169 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 6, s_25); /* <-, line 170 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 6, s_26); /* <-, line 171 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 4, s_27); /* <-, line 172 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 8, s_28); /* <-, line 173 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_from_s(z, 6, s_29); /* <-, line 174 */ + if (ret < 0) return ret; + } + break; + case 7: + { int ret = slice_from_s(z, 6, s_30); /* <-, line 175 */ + if (ret < 0) return ret; + } + break; + case 8: + { int ret = slice_from_s(z, 6, s_31); /* <-, line 176 */ + if (ret < 0) return ret; + } + break; + case 9: + { int ret = slice_from_s(z, 4, s_32); /* <-, line 177 */ + if (ret < 0) return ret; + } + break; + case 10: + { int ret = slice_from_s(z, 12, s_33); /* <-, line 178 */ + if (ret < 0) return ret; + } + break; + case 11: + { int ret = slice_from_s(z, 10, s_34); /* <-, line 179 */ + if (ret < 0) return ret; + } + break; + } + z->B[0] = 0; /* unset test1, line 181 */ + return 1; +} + +static int r_steps1(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 185 */ + if (!(find_among_b(z, a_4, 14))) return 0; /* substring, line 185 */ + z->bra = z->c; /* ], line 185 */ + { int ret = slice_del(z); /* delete, line 188 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 189 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 193 */ + z->ket = z->c; /* [, line 190 */ + if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1; /* substring, line 190 */ + if (!(find_among_b(z, a_2, 9))) goto lab1; + z->bra = z->c; /* ], line 190 */ + if (z->c > z->lb) goto lab1; /* atlimit, line 190 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 192 */ + if (z->S[0] == 0) return -1; /* -> s, line 192 */ + { int ret = slice_from_s(z, 2, s_35); /* <-, line 192 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 192 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 194 */ + if (!(find_among_b(z, a_3, 22))) return 0; /* substring, line 194 */ + z->bra = z->c; /* ], line 194 */ + if (z->c > z->lb) return 0; /* atlimit, line 194 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 198 */ + if (z->S[0] == 0) return -1; /* -> s, line 198 */ + { int ret = slice_from_s(z, 4, s_36); /* <-, line 198 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 198 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + } +lab0: + return 1; +} + +static int r_steps2(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 205 */ + if (!(find_among_b(z, a_6, 7))) return 0; /* substring, line 205 */ + z->bra = z->c; /* ], line 205 */ + { int ret = slice_del(z); /* delete, line 207 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 208 */ + z->ket = z->c; /* [, line 209 */ + if (!(find_among_b(z, a_5, 8))) return 0; /* substring, line 209 */ + z->bra = z->c; /* ], line 209 */ + if (z->c > z->lb) return 0; /* atlimit, line 209 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 210 */ + if (z->S[0] == 0) return -1; /* -> s, line 210 */ + { int ret = slice_from_s(z, 4, s_37); /* <-, line 210 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 210 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_steps3(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 217 */ + if (!(find_among_b(z, a_9, 7))) return 0; /* substring, line 217 */ + z->bra = z->c; /* ], line 217 */ + { int ret = slice_del(z); /* delete, line 219 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 220 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 221 */ + if (!(eq_s_b(z, 6, s_38))) goto lab1; /* literal, line 221 */ + if (z->c > z->lb) goto lab1; /* atlimit, line 221 */ + { int ret = slice_from_s(z, 4, s_39); /* <-, line 221 */ + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 222 */ + if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 222 */ + if (!(find_among_b(z, a_7, 19))) goto lab2; + z->bra = z->c; /* ], line 222 */ + if (z->c > z->lb) goto lab2; /* atlimit, line 222 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 226 */ + if (z->S[0] == 0) return -1; /* -> s, line 226 */ + { int ret = slice_from_s(z, 2, s_40); /* <-, line 226 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 226 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab2: + z->c = z->l - m1; + z->ket = z->c; /* [, line 228 */ + if (!(find_among_b(z, a_8, 13))) return 0; /* substring, line 228 */ + z->bra = z->c; /* ], line 228 */ + if (z->c > z->lb) return 0; /* atlimit, line 228 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 231 */ + if (z->S[0] == 0) return -1; /* -> s, line 231 */ + { int ret = slice_from_s(z, 4, s_41); /* <-, line 231 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 231 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + } +lab0: + return 1; +} + +static int r_steps4(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 238 */ + if (!(find_among_b(z, a_11, 7))) return 0; /* substring, line 238 */ + z->bra = z->c; /* ], line 238 */ + { int ret = slice_del(z); /* delete, line 240 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 241 */ + z->ket = z->c; /* [, line 242 */ + if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 242 */ + if (!(find_among_b(z, a_10, 19))) return 0; + z->bra = z->c; /* ], line 242 */ + if (z->c > z->lb) return 0; /* atlimit, line 242 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 246 */ + if (z->S[0] == 0) return -1; /* -> s, line 246 */ + { int ret = slice_from_s(z, 2, s_42); /* <-, line 246 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 246 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_steps5(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 253 */ + if (!(find_among_b(z, a_14, 11))) return 0; /* substring, line 253 */ + z->bra = z->c; /* ], line 253 */ + { int ret = slice_del(z); /* delete, line 256 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 257 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 261 */ + z->ket = z->c; /* [, line 258 */ + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 181 && z->p[z->c - 1] != 191)) goto lab1; /* substring, line 258 */ + if (!(find_among_b(z, a_12, 7))) goto lab1; + z->bra = z->c; /* ], line 258 */ + if (z->c > z->lb) goto lab1; /* atlimit, line 258 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 260 */ + if (z->S[0] == 0) return -1; /* -> s, line 260 */ + { int ret = slice_from_s(z, 2, s_43); /* <-, line 260 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 260 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 262 */ + if (!(find_among_b(z, a_13, 33))) return 0; /* substring, line 262 */ + z->bra = z->c; /* ], line 262 */ + if (z->c > z->lb) return 0; /* atlimit, line 262 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 266 */ + if (z->S[0] == 0) return -1; /* -> s, line 266 */ + { int ret = slice_from_s(z, 6, s_44); /* <-, line 266 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 266 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + } +lab0: + return 1; +} + +static int r_steps6(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 273 */ + if (!(find_among_b(z, a_18, 6))) return 0; /* substring, line 273 */ + z->bra = z->c; /* ], line 273 */ + { int ret = slice_del(z); /* delete, line 275 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 276 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 280 */ + z->ket = z->c; /* [, line 277 */ + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 181) goto lab1; /* substring, line 277 */ + if (!(find_among_b(z, a_15, 5))) goto lab1; + z->bra = z->c; /* ], line 277 */ + if (z->c > z->lb) goto lab1; /* atlimit, line 277 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 279 */ + if (z->S[0] == 0) return -1; /* -> s, line 279 */ + { int ret = slice_from_s(z, 6, s_45); /* <-, line 279 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 279 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 281 */ + if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) goto lab2; /* substring, line 281 */ + if (!(find_among_b(z, a_16, 2))) goto lab2; + z->bra = z->c; /* ], line 281 */ + if (z->c > z->lb) goto lab2; /* atlimit, line 281 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 283 */ + if (z->S[0] == 0) return -1; /* -> s, line 283 */ + { int ret = slice_from_s(z, 2, s_46); /* <-, line 283 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 283 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab2: + z->c = z->l - m1; + z->ket = z->c; /* [, line 285 */ + if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 186 && z->p[z->c - 1] != 189)) return 0; /* substring, line 285 */ + among_var = find_among_b(z, a_17, 10); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 285 */ + switch (among_var) { /* among, line 285 */ + case 1: + { int ret = slice_from_s(z, 12, s_47); /* <-, line 286 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 8, s_48); /* <-, line 287 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 10, s_49); /* <-, line 288 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 6, s_50); /* <-, line 289 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 12, s_51); /* <-, line 290 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_from_s(z, 10, s_52); /* <-, line 291 */ + if (ret < 0) return ret; + } + break; + case 7: + { int ret = slice_from_s(z, 6, s_53); /* <-, line 292 */ + if (ret < 0) return ret; + } + break; + case 8: + { int ret = slice_from_s(z, 16, s_54); /* <-, line 293 */ + if (ret < 0) return ret; + } + break; + case 9: + { int ret = slice_from_s(z, 12, s_55); /* <-, line 294 */ + if (ret < 0) return ret; + } + break; + case 10: + { int ret = slice_from_s(z, 10, s_56); /* <-, line 295 */ + if (ret < 0) return ret; + } + break; + } + } +lab0: + return 1; +} + +static int r_steps7(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 302 */ + if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 177 && z->p[z->c - 1] != 185)) return 0; /* substring, line 302 */ + if (!(find_among_b(z, a_20, 4))) return 0; + z->bra = z->c; /* ], line 302 */ + { int ret = slice_del(z); /* delete, line 304 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 305 */ + z->ket = z->c; /* [, line 306 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 135)) return 0; /* substring, line 306 */ + if (!(find_among_b(z, a_19, 2))) return 0; + z->bra = z->c; /* ], line 306 */ + if (z->c > z->lb) return 0; /* atlimit, line 306 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 308 */ + if (z->S[0] == 0) return -1; /* -> s, line 308 */ + { int ret = slice_from_s(z, 8, s_57); /* <-, line 308 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 308 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_steps8(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 315 */ + if (!(find_among_b(z, a_23, 8))) return 0; /* substring, line 315 */ + z->bra = z->c; /* ], line 315 */ + { int ret = slice_del(z); /* delete, line 317 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 318 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 325 */ + z->ket = z->c; /* [, line 319 */ + if (!(find_among_b(z, a_21, 33))) goto lab1; /* substring, line 319 */ + z->bra = z->c; /* ], line 319 */ + if (z->c > z->lb) goto lab1; /* atlimit, line 319 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 324 */ + if (z->S[0] == 0) return -1; /* -> s, line 324 */ + { int ret = slice_from_s(z, 4, s_58); /* <-, line 324 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 324 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 326 */ + if (!(find_among_b(z, a_22, 15))) goto lab2; /* substring, line 326 */ + z->bra = z->c; /* ], line 326 */ + if (z->c > z->lb) goto lab2; /* atlimit, line 326 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 329 */ + if (z->S[0] == 0) return -1; /* -> s, line 329 */ + { int ret = slice_from_s(z, 6, s_59); /* <-, line 329 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 329 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab2: + z->c = z->l - m1; + z->ket = z->c; /* [, line 331 */ + if (!(eq_s_b(z, 6, s_60))) return 0; /* literal, line 331 */ + z->bra = z->c; /* ], line 331 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 331 */ + if (z->S[0] == 0) return -1; /* -> s, line 331 */ + { int ret = slice_from_s(z, 6, s_61); /* <-, line 331 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 331 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + } +lab0: + return 1; +} + +static int r_steps9(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 337 */ + if (z->c - 7 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-1610481664 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 337 */ + if (!(find_among_b(z, a_26, 3))) return 0; + z->bra = z->c; /* ], line 337 */ + { int ret = slice_del(z); /* delete, line 339 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 340 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 343 */ + z->ket = z->c; /* [, line 341 */ + if (!(find_among_b(z, a_24, 4))) goto lab1; /* substring, line 341 */ + z->bra = z->c; /* ], line 341 */ + if (z->c > z->lb) goto lab1; /* atlimit, line 341 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 342 */ + if (z->S[0] == 0) return -1; /* -> s, line 342 */ + { int ret = slice_from_s(z, 4, s_62); /* <-, line 342 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 342 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 344 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 181 && z->p[z->c - 1] != 189)) return 0; /* substring, line 344 */ + if (!(find_among_b(z, a_25, 2))) return 0; + z->bra = z->c; /* ], line 344 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 345 */ + if (z->S[0] == 0) return -1; /* -> s, line 345 */ + { int ret = slice_from_s(z, 4, s_63); /* <-, line 345 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 345 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + } +lab0: + return 1; +} + +static int r_steps10(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 352 */ + if (!(find_among_b(z, a_28, 4))) return 0; /* substring, line 352 */ + z->bra = z->c; /* ], line 352 */ + { int ret = slice_del(z); /* delete, line 354 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 355 */ + z->ket = z->c; /* [, line 356 */ + if (!(find_among_b(z, a_27, 7))) return 0; /* substring, line 356 */ + z->bra = z->c; /* ], line 356 */ + if (z->c > z->lb) return 0; /* atlimit, line 356 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 358 */ + if (z->S[0] == 0) return -1; /* -> s, line 358 */ + { int ret = slice_from_s(z, 6, s_64); /* <-, line 358 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 358 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step2a(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 365 */ + if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 365 */ + if (!(find_among_b(z, a_29, 2))) return 0; + z->bra = z->c; /* ], line 365 */ + { int ret = slice_del(z); /* delete, line 366 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* not, line 368 */ + z->ket = z->c; /* [, line 368 */ + if (!(find_among_b(z, a_30, 10))) goto lab0; /* substring, line 368 */ + z->bra = z->c; /* ], line 368 */ + return 0; + lab0: + z->c = z->l - m1; + } + { int ret; + { int saved_c = z->c; + ret = insert_s(z, z->c, z->c, 4, s_65); /* <+, line 371 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step2b(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 375 */ + if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 375 */ + if (!(find_among_b(z, a_31, 2))) return 0; + z->bra = z->c; /* ], line 375 */ + { int ret = slice_del(z); /* delete, line 376 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 378 */ + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 187)) return 0; /* substring, line 378 */ + if (!(find_among_b(z, a_32, 8))) return 0; + z->bra = z->c; /* ], line 378 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 379 */ + if (z->S[0] == 0) return -1; /* -> s, line 379 */ + { int ret = slice_from_s(z, 4, s_66); /* <-, line 379 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 379 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step2c(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 384 */ + if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 384 */ + if (!(find_among_b(z, a_33, 2))) return 0; + z->bra = z->c; /* ], line 384 */ + { int ret = slice_del(z); /* delete, line 385 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 387 */ + if (!(find_among_b(z, a_34, 15))) return 0; /* substring, line 387 */ + z->bra = z->c; /* ], line 387 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 389 */ + if (z->S[0] == 0) return -1; /* -> s, line 389 */ + { int ret = slice_from_s(z, 6, s_67); /* <-, line 389 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 389 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step2d(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 394 */ + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 394 */ + if (!(find_among_b(z, a_35, 2))) return 0; + z->bra = z->c; /* ], line 394 */ + { int ret = slice_del(z); /* delete, line 395 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 395 */ + z->ket = z->c; /* [, line 397 */ + if (!(find_among_b(z, a_36, 8))) return 0; /* substring, line 397 */ + z->bra = z->c; /* ], line 397 */ + if (z->c > z->lb) return 0; /* atlimit, line 397 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 398 */ + if (z->S[0] == 0) return -1; /* -> s, line 398 */ + { int ret = slice_from_s(z, 2, s_68); /* <-, line 398 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 398 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step3(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 403 */ + if (!(find_among_b(z, a_37, 3))) return 0; /* substring, line 403 */ + z->bra = z->c; /* ], line 403 */ + { int ret = slice_del(z); /* delete, line 404 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 404 */ + z->ket = z->c; /* [, line 406 */ + if (in_grouping_b_U(z, g_v, 945, 969, 0)) return 0; /* grouping v, line 406 */ + z->bra = z->c; /* ], line 406 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 406 */ + if (z->S[0] == 0) return -1; /* -> s, line 406 */ + { int ret = slice_from_s(z, 2, s_69); /* <-, line 406 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 406 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step4(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 410 */ + if (!(find_among_b(z, a_38, 4))) return 0; /* substring, line 410 */ + z->bra = z->c; /* ], line 410 */ + { int ret = slice_del(z); /* delete, line 411 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 411 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 413 */ + z->ket = z->c; /* [, line 413 */ + if (in_grouping_b_U(z, g_v, 945, 969, 0)) goto lab1; /* grouping v, line 413 */ + z->bra = z->c; /* ], line 413 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 413 */ + if (z->S[0] == 0) return -1; /* -> s, line 413 */ + { int ret = slice_from_s(z, 4, s_70); /* <-, line 413 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 413 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 414 */ + } +lab0: + if (!(find_among_b(z, a_39, 36))) return 0; /* substring, line 414 */ + z->bra = z->c; /* ], line 414 */ + if (z->c > z->lb) return 0; /* atlimit, line 414 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 419 */ + if (z->S[0] == 0) return -1; /* -> s, line 419 */ + { int ret = slice_from_s(z, 4, s_71); /* <-, line 419 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 419 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step5a(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* do, line 424 */ + if (!(eq_s_b(z, 10, s_72))) goto lab0; /* literal, line 424 */ + if (z->c > z->lb) goto lab0; /* atlimit, line 424 */ + { int ret = slice_from_s(z, 8, s_73); /* <-, line 424 */ + if (ret < 0) return ret; + } + lab0: + z->c = z->l - m1; + } + { int m2 = z->l - z->c; (void)m2; /* do, line 425 */ + z->ket = z->c; /* [, line 426 */ + if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab1; /* substring, line 426 */ + if (!(find_among_b(z, a_40, 5))) goto lab1; + z->bra = z->c; /* ], line 426 */ + { int ret = slice_del(z); /* delete, line 427 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 427 */ + lab1: + z->c = z->l - m2; + } + z->ket = z->c; /* [, line 430 */ + if (!(eq_s_b(z, 6, s_74))) return 0; /* literal, line 430 */ + z->bra = z->c; /* ], line 430 */ + { int ret = slice_del(z); /* delete, line 431 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 432 */ + z->ket = z->c; /* [, line 433 */ + if (!(find_among_b(z, a_41, 12))) return 0; /* substring, line 433 */ + z->bra = z->c; /* ], line 433 */ + if (z->c > z->lb) return 0; /* atlimit, line 433 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 435 */ + if (z->S[0] == 0) return -1; /* -> s, line 435 */ + { int ret = slice_from_s(z, 4, s_75); /* <-, line 435 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 435 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step5b(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* do, line 440 */ + z->ket = z->c; /* [, line 441 */ + if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0; /* substring, line 441 */ + if (!(find_among_b(z, a_43, 11))) goto lab0; + z->bra = z->c; /* ], line 441 */ + { int ret = slice_del(z); /* delete, line 444 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 445 */ + z->ket = z->c; /* [, line 446 */ + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 131)) goto lab0; /* substring, line 446 */ + if (!(find_among_b(z, a_42, 2))) goto lab0; + z->bra = z->c; /* ], line 446 */ + if (z->c > z->lb) goto lab0; /* atlimit, line 446 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 447 */ + if (z->S[0] == 0) return -1; /* -> s, line 447 */ + { int ret = slice_from_s(z, 8, s_76); /* <-, line 447 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 447 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + lab0: + z->c = z->l - m1; + } + z->ket = z->c; /* [, line 452 */ + if (!(eq_s_b(z, 6, s_77))) return 0; /* literal, line 452 */ + z->bra = z->c; /* ], line 452 */ + { int ret = slice_del(z); /* delete, line 453 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 454 */ + { int m2 = z->l - z->c; (void)m2; /* or, line 455 */ + z->ket = z->c; /* [, line 455 */ + if (in_grouping_b_U(z, g_v2, 945, 969, 0)) goto lab2; /* grouping v2, line 455 */ + z->bra = z->c; /* ], line 455 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 455 */ + if (z->S[0] == 0) return -1; /* -> s, line 455 */ + { int ret = slice_from_s(z, 4, s_78); /* <-, line 455 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 455 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab1; + lab2: + z->c = z->l - m2; + z->ket = z->c; /* [, line 456 */ + } +lab1: + if (!(find_among_b(z, a_44, 95))) return 0; /* substring, line 456 */ + z->bra = z->c; /* ], line 456 */ + if (z->c > z->lb) return 0; /* atlimit, line 456 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 473 */ + if (z->S[0] == 0) return -1; /* -> s, line 473 */ + { int ret = slice_from_s(z, 4, s_79); /* <-, line 473 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 473 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step5c(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* do, line 478 */ + z->ket = z->c; /* [, line 479 */ + if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0; /* substring, line 479 */ + if (!(find_among_b(z, a_45, 1))) goto lab0; + z->bra = z->c; /* ], line 479 */ + { int ret = slice_del(z); /* delete, line 480 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 480 */ + lab0: + z->c = z->l - m1; + } + z->ket = z->c; /* [, line 483 */ + if (!(eq_s_b(z, 6, s_80))) return 0; /* literal, line 483 */ + z->bra = z->c; /* ], line 483 */ + { int ret = slice_del(z); /* delete, line 484 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 485 */ + { int m2 = z->l - z->c; (void)m2; /* or, line 486 */ + z->ket = z->c; /* [, line 486 */ + if (in_grouping_b_U(z, g_v2, 945, 969, 0)) goto lab2; /* grouping v2, line 486 */ + z->bra = z->c; /* ], line 486 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 486 */ + if (z->S[0] == 0) return -1; /* -> s, line 486 */ + { int ret = slice_from_s(z, 4, s_81); /* <-, line 486 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 486 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab1; + lab2: + z->c = z->l - m2; + z->ket = z->c; /* [, line 487 */ + if (!(find_among_b(z, a_46, 31))) goto lab3; /* substring, line 487 */ + z->bra = z->c; /* ], line 487 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 491 */ + if (z->S[0] == 0) return -1; /* -> s, line 491 */ + { int ret = slice_from_s(z, 4, s_82); /* <-, line 491 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 491 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab1; + lab3: + z->c = z->l - m2; + z->ket = z->c; /* [, line 493 */ + } +lab1: + if (!(find_among_b(z, a_47, 25))) return 0; /* substring, line 493 */ + z->bra = z->c; /* ], line 493 */ + if (z->c > z->lb) return 0; /* atlimit, line 493 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 497 */ + if (z->S[0] == 0) return -1; /* -> s, line 497 */ + { int ret = slice_from_s(z, 4, s_83); /* <-, line 497 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 497 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step5d(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 502 */ + if (z->c - 9 <= z->lb || z->p[z->c - 1] != 131) return 0; /* substring, line 502 */ + if (!(find_among_b(z, a_48, 2))) return 0; + z->bra = z->c; /* ], line 502 */ + { int ret = slice_del(z); /* delete, line 504 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 505 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 506 */ + z->ket = z->c; /* [, line 506 */ + if (!(eq_s_b(z, 6, s_84))) goto lab1; /* literal, line 506 */ + z->bra = z->c; /* ], line 506 */ + if (z->c > z->lb) goto lab1; /* atlimit, line 506 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 506 */ + if (z->S[0] == 0) return -1; /* -> s, line 506 */ + { int ret = slice_from_s(z, 6, s_85); /* <-, line 506 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 506 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 507 */ + if (!(eq_s_b(z, 6, s_86))) return 0; /* literal, line 507 */ + z->bra = z->c; /* ], line 507 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 507 */ + if (z->S[0] == 0) return -1; /* -> s, line 507 */ + { int ret = slice_from_s(z, 6, s_87); /* <-, line 507 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 507 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + } +lab0: + return 1; +} + +static int r_step5e(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 513 */ + if (z->c - 11 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 513 */ + if (!(find_among_b(z, a_49, 2))) return 0; + z->bra = z->c; /* ], line 513 */ + { int ret = slice_del(z); /* delete, line 515 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 516 */ + z->ket = z->c; /* [, line 517 */ + if (!(eq_s_b(z, 4, s_88))) return 0; /* literal, line 517 */ + z->bra = z->c; /* ], line 517 */ + if (z->c > z->lb) return 0; /* atlimit, line 517 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 517 */ + if (z->S[0] == 0) return -1; /* -> s, line 517 */ + { int ret = slice_from_s(z, 10, s_89); /* <-, line 517 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 517 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step5f(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* do, line 523 */ + z->ket = z->c; /* [, line 524 */ + if (!(eq_s_b(z, 10, s_90))) goto lab0; /* literal, line 524 */ + z->bra = z->c; /* ], line 524 */ + { int ret = slice_del(z); /* delete, line 525 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 526 */ + z->ket = z->c; /* [, line 527 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 134)) goto lab0; /* substring, line 527 */ + if (!(find_among_b(z, a_50, 6))) goto lab0; + z->bra = z->c; /* ], line 527 */ + if (z->c > z->lb) goto lab0; /* atlimit, line 527 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 528 */ + if (z->S[0] == 0) return -1; /* -> s, line 528 */ + { int ret = slice_from_s(z, 8, s_91); /* <-, line 528 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 528 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + lab0: + z->c = z->l - m1; + } + z->ket = z->c; /* [, line 531 */ + if (!(eq_s_b(z, 8, s_92))) return 0; /* literal, line 531 */ + z->bra = z->c; /* ], line 531 */ + { int ret = slice_del(z); /* delete, line 532 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 533 */ + z->ket = z->c; /* [, line 534 */ + if (!(find_among_b(z, a_51, 9))) return 0; /* substring, line 534 */ + z->bra = z->c; /* ], line 534 */ + if (z->c > z->lb) return 0; /* atlimit, line 534 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 536 */ + if (z->S[0] == 0) return -1; /* -> s, line 536 */ + { int ret = slice_from_s(z, 8, s_93); /* <-, line 536 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 536 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step5g(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* do, line 541 */ + z->ket = z->c; /* [, line 542 */ + if (!(find_among_b(z, a_52, 3))) goto lab0; /* substring, line 542 */ + z->bra = z->c; /* ], line 542 */ + { int ret = slice_del(z); /* delete, line 543 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 543 */ + lab0: + z->c = z->l - m1; + } + z->ket = z->c; /* [, line 546 */ + if (!(find_among_b(z, a_55, 3))) return 0; /* substring, line 546 */ + z->bra = z->c; /* ], line 546 */ + { int ret = slice_del(z); /* delete, line 548 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 549 */ + { int m2 = z->l - z->c; (void)m2; /* or, line 552 */ + z->ket = z->c; /* [, line 550 */ + if (!(find_among_b(z, a_53, 6))) goto lab2; /* substring, line 550 */ + z->bra = z->c; /* ], line 550 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 551 */ + if (z->S[0] == 0) return -1; /* -> s, line 551 */ + { int ret = slice_from_s(z, 4, s_94); /* <-, line 551 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 551 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab1; + lab2: + z->c = z->l - m2; + z->ket = z->c; /* [, line 553 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 184) return 0; /* substring, line 553 */ + if (!(find_among_b(z, a_54, 5))) return 0; + z->bra = z->c; /* ], line 553 */ + if (z->c > z->lb) return 0; /* atlimit, line 553 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 554 */ + if (z->S[0] == 0) return -1; /* -> s, line 554 */ + { int ret = slice_from_s(z, 4, s_95); /* <-, line 554 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 554 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + } +lab1: + return 1; +} + +static int r_step5h(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 561 */ + if (!(find_among_b(z, a_58, 3))) return 0; /* substring, line 561 */ + z->bra = z->c; /* ], line 561 */ + { int ret = slice_del(z); /* delete, line 563 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 564 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 569 */ + z->ket = z->c; /* [, line 565 */ + if (!(find_among_b(z, a_56, 12))) goto lab1; /* substring, line 565 */ + z->bra = z->c; /* ], line 565 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 567 */ + if (z->S[0] == 0) return -1; /* -> s, line 567 */ + { int ret = slice_from_s(z, 6, s_96); /* <-, line 567 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 567 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 570 */ + if (!(find_among_b(z, a_57, 25))) return 0; /* substring, line 570 */ + z->bra = z->c; /* ], line 570 */ + if (z->c > z->lb) return 0; /* atlimit, line 570 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 574 */ + if (z->S[0] == 0) return -1; /* -> s, line 574 */ + { int ret = slice_from_s(z, 6, s_97); /* <-, line 574 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 574 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + } +lab0: + return 1; +} + +static int r_step5i(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 581 */ + if (!(find_among_b(z, a_62, 3))) return 0; /* substring, line 581 */ + z->bra = z->c; /* ], line 581 */ + { int ret = slice_del(z); /* delete, line 583 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 584 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 585 */ + z->ket = z->c; /* [, line 585 */ + if (!(eq_s_b(z, 8, s_98))) goto lab1; /* literal, line 585 */ + z->bra = z->c; /* ], line 585 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 585 */ + if (z->S[0] == 0) return -1; /* -> s, line 585 */ + { int ret = slice_from_s(z, 4, s_99); /* <-, line 585 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 585 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + { int m2 = z->l - z->c; (void)m2; /* not, line 586 */ + z->ket = z->c; /* [, line 586 */ + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 134 && z->p[z->c - 1] != 135)) goto lab2; /* substring, line 586 */ + if (!(find_among_b(z, a_59, 2))) goto lab2; + z->bra = z->c; /* ], line 586 */ + return 0; + lab2: + z->c = z->l - m2; + } + { int m3 = z->l - z->c; (void)m3; /* or, line 590 */ + z->ket = z->c; /* [, line 587 */ + if (!(find_among_b(z, a_60, 10))) goto lab4; /* substring, line 587 */ + z->bra = z->c; /* ], line 587 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 589 */ + if (z->S[0] == 0) return -1; /* -> s, line 589 */ + { int ret = slice_from_s(z, 4, s_100); /* <-, line 589 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 589 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab3; + lab4: + z->c = z->l - m3; + z->ket = z->c; /* [, line 591 */ + if (!(find_among_b(z, a_61, 44))) return 0; /* substring, line 591 */ + z->bra = z->c; /* ], line 591 */ + if (z->c > z->lb) return 0; /* atlimit, line 591 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 597 */ + if (z->S[0] == 0) return -1; /* -> s, line 597 */ + { int ret = slice_from_s(z, 4, s_101); /* <-, line 597 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 597 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + } + lab3: + ; + } +lab0: + return 1; +} + +static int r_step5j(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 605 */ + if (!(find_among_b(z, a_63, 3))) return 0; /* substring, line 605 */ + z->bra = z->c; /* ], line 605 */ + { int ret = slice_del(z); /* delete, line 606 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 606 */ + z->ket = z->c; /* [, line 608 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 189) return 0; /* substring, line 608 */ + if (!(find_among_b(z, a_64, 6))) return 0; + z->bra = z->c; /* ], line 608 */ + if (z->c > z->lb) return 0; /* atlimit, line 608 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 609 */ + if (z->S[0] == 0) return -1; /* -> s, line 609 */ + { int ret = slice_from_s(z, 4, s_102); /* <-, line 609 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 609 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step5k(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 614 */ + if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 614 */ + if (!(find_among_b(z, a_65, 1))) return 0; + z->bra = z->c; /* ], line 614 */ + { int ret = slice_del(z); /* delete, line 615 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 615 */ + z->ket = z->c; /* [, line 617 */ + if (!(find_among_b(z, a_66, 10))) return 0; /* substring, line 617 */ + z->bra = z->c; /* ], line 617 */ + if (z->c > z->lb) return 0; /* atlimit, line 617 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 619 */ + if (z->S[0] == 0) return -1; /* -> s, line 619 */ + { int ret = slice_from_s(z, 6, s_103); /* <-, line 619 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 619 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step5l(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 624 */ + if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 624 */ + if (!(find_among_b(z, a_67, 3))) return 0; + z->bra = z->c; /* ], line 624 */ + { int ret = slice_del(z); /* delete, line 625 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 625 */ + z->ket = z->c; /* [, line 627 */ + if (!(find_among_b(z, a_68, 6))) return 0; /* substring, line 627 */ + z->bra = z->c; /* ], line 627 */ + if (z->c > z->lb) return 0; /* atlimit, line 627 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 628 */ + if (z->S[0] == 0) return -1; /* -> s, line 628 */ + { int ret = slice_from_s(z, 6, s_104); /* <-, line 628 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 628 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step5m(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 633 */ + if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 633 */ + if (!(find_among_b(z, a_69, 3))) return 0; + z->bra = z->c; /* ], line 633 */ + { int ret = slice_del(z); /* delete, line 634 */ + if (ret < 0) return ret; + } + z->B[0] = 0; /* unset test1, line 634 */ + z->ket = z->c; /* [, line 636 */ + if (!(find_among_b(z, a_70, 7))) return 0; /* substring, line 636 */ + z->bra = z->c; /* ], line 636 */ + if (z->c > z->lb) return 0; /* atlimit, line 636 */ + z->S[0] = slice_to(z, z->S[0]); /* -> s, line 638 */ + if (z->S[0] == 0) return -1; /* -> s, line 638 */ + { int ret = slice_from_s(z, 6, s_105); /* <-, line 638 */ + if (ret < 0) return ret; + } + { int ret; + { int saved_c = z->c; + ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 638 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + return 1; +} + +static int r_step6(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* do, line 643 */ + z->ket = z->c; /* [, line 644 */ + if (!(find_among_b(z, a_71, 3))) goto lab0; /* substring, line 644 */ + z->bra = z->c; /* ], line 644 */ + { int ret = slice_from_s(z, 4, s_106); /* <-, line 645 */ + if (ret < 0) return ret; + } + lab0: + z->c = z->l - m1; + } + if (!(z->B[0])) return 0; /* Boolean test test1, line 648 */ + z->ket = z->c; /* [, line 649 */ + if (!(find_among_b(z, a_72, 84))) return 0; /* substring, line 649 */ + z->bra = z->c; /* ], line 649 */ + { int ret = slice_del(z); /* delete, line 659 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_step7(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 664 */ + if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 132)) return 0; /* substring, line 664 */ + if (!(find_among_b(z, a_73, 8))) return 0; + z->bra = z->c; /* ], line 664 */ + { int ret = slice_del(z); /* delete, line 665 */ + if (ret < 0) return ret; + } + return 1; +} + +extern int greek_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + z->lb = z->c; z->c = z->l; /* backwards, line 671 */ + + { int m1 = z->l - z->c; (void)m1; /* do, line 672 */ + { int ret = r_tolower(z); /* call tolower, line 672 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = z->l - m1; + } + { int ret = r_has_min_length(z); /* call has_min_length, line 673 */ + if (ret <= 0) return ret; + } + z->B[0] = 1; /* set test1, line 674 */ + { int m2 = z->l - z->c; (void)m2; /* do, line 675 */ + { int ret = r_step1(z); /* call step1, line 675 */ + 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 676 */ + { int ret = r_steps1(z); /* call steps1, line 676 */ + 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 677 */ + { int ret = r_steps2(z); /* call steps2, line 677 */ + 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 678 */ + { int ret = r_steps3(z); /* call steps3, line 678 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + lab4: + z->c = z->l - m5; + } + { int m6 = z->l - z->c; (void)m6; /* do, line 679 */ + { int ret = r_steps4(z); /* call steps4, line 679 */ + 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 680 */ + { int ret = r_steps5(z); /* call steps5, line 680 */ + 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 681 */ + { int ret = r_steps6(z); /* call steps6, line 681 */ + 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 682 */ + { int ret = r_steps7(z); /* call steps7, line 682 */ + 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 683 */ + { int ret = r_steps8(z); /* call steps8, line 683 */ + 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 684 */ + { int ret = r_steps9(z); /* call steps9, line 684 */ + 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 685 */ + { int ret = r_steps10(z); /* call steps10, line 685 */ + 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 686 */ + { int ret = r_step2a(z); /* call step2a, line 686 */ + if (ret == 0) goto lab12; + if (ret < 0) return ret; + } + lab12: + z->c = z->l - m13; + } + { int m14 = z->l - z->c; (void)m14; /* do, line 687 */ + { int ret = r_step2b(z); /* call step2b, line 687 */ + if (ret == 0) goto lab13; + if (ret < 0) return ret; + } + lab13: + z->c = z->l - m14; + } + { int m15 = z->l - z->c; (void)m15; /* do, line 688 */ + { int ret = r_step2c(z); /* call step2c, line 688 */ + if (ret == 0) goto lab14; + if (ret < 0) return ret; + } + lab14: + z->c = z->l - m15; + } + { int m16 = z->l - z->c; (void)m16; /* do, line 689 */ + { int ret = r_step2d(z); /* call step2d, line 689 */ + if (ret == 0) goto lab15; + if (ret < 0) return ret; + } + lab15: + z->c = z->l - m16; + } + { int m17 = z->l - z->c; (void)m17; /* do, line 690 */ + { int ret = r_step3(z); /* call step3, line 690 */ + if (ret == 0) goto lab16; + if (ret < 0) return ret; + } + lab16: + z->c = z->l - m17; + } + { int m18 = z->l - z->c; (void)m18; /* do, line 691 */ + { int ret = r_step4(z); /* call step4, line 691 */ + if (ret == 0) goto lab17; + if (ret < 0) return ret; + } + lab17: + z->c = z->l - m18; + } + { int m19 = z->l - z->c; (void)m19; /* do, line 692 */ + { int ret = r_step5a(z); /* call step5a, line 692 */ + if (ret == 0) goto lab18; + if (ret < 0) return ret; + } + lab18: + z->c = z->l - m19; + } + { int m20 = z->l - z->c; (void)m20; /* do, line 693 */ + { int ret = r_step5b(z); /* call step5b, line 693 */ + if (ret == 0) goto lab19; + if (ret < 0) return ret; + } + lab19: + z->c = z->l - m20; + } + { int m21 = z->l - z->c; (void)m21; /* do, line 694 */ + { int ret = r_step5c(z); /* call step5c, line 694 */ + if (ret == 0) goto lab20; + if (ret < 0) return ret; + } + lab20: + z->c = z->l - m21; + } + { int m22 = z->l - z->c; (void)m22; /* do, line 695 */ + { int ret = r_step5d(z); /* call step5d, line 695 */ + if (ret == 0) goto lab21; + if (ret < 0) return ret; + } + lab21: + z->c = z->l - m22; + } + { int m23 = z->l - z->c; (void)m23; /* do, line 696 */ + { int ret = r_step5e(z); /* call step5e, line 696 */ + if (ret == 0) goto lab22; + if (ret < 0) return ret; + } + lab22: + z->c = z->l - m23; + } + { int m24 = z->l - z->c; (void)m24; /* do, line 697 */ + { int ret = r_step5f(z); /* call step5f, line 697 */ + if (ret == 0) goto lab23; + if (ret < 0) return ret; + } + lab23: + z->c = z->l - m24; + } + { int m25 = z->l - z->c; (void)m25; /* do, line 698 */ + { int ret = r_step5g(z); /* call step5g, line 698 */ + if (ret == 0) goto lab24; + if (ret < 0) return ret; + } + lab24: + z->c = z->l - m25; + } + { int m26 = z->l - z->c; (void)m26; /* do, line 699 */ + { int ret = r_step5h(z); /* call step5h, line 699 */ + if (ret == 0) goto lab25; + if (ret < 0) return ret; + } + lab25: + z->c = z->l - m26; + } + { int m27 = z->l - z->c; (void)m27; /* do, line 700 */ + { int ret = r_step5j(z); /* call step5j, line 700 */ + if (ret == 0) goto lab26; + if (ret < 0) return ret; + } + lab26: + z->c = z->l - m27; + } + { int m28 = z->l - z->c; (void)m28; /* do, line 701 */ + { int ret = r_step5i(z); /* call step5i, line 701 */ + if (ret == 0) goto lab27; + if (ret < 0) return ret; + } + lab27: + z->c = z->l - m28; + } + { int m29 = z->l - z->c; (void)m29; /* do, line 702 */ + { int ret = r_step5k(z); /* call step5k, line 702 */ + if (ret == 0) goto lab28; + if (ret < 0) return ret; + } + lab28: + z->c = z->l - m29; + } + { int m30 = z->l - z->c; (void)m30; /* do, line 703 */ + { int ret = r_step5l(z); /* call step5l, line 703 */ + if (ret == 0) goto lab29; + if (ret < 0) return ret; + } + lab29: + z->c = z->l - m30; + } + { int m31 = z->l - z->c; (void)m31; /* do, line 704 */ + { int ret = r_step5m(z); /* call step5m, line 704 */ + if (ret == 0) goto lab30; + if (ret < 0) return ret; + } + lab30: + z->c = z->l - m31; + } + { int m32 = z->l - z->c; (void)m32; /* do, line 705 */ + { int ret = r_step6(z); /* call step6, line 705 */ + if (ret == 0) goto lab31; + if (ret < 0) return ret; + } + lab31: + z->c = z->l - m32; + } + { int m33 = z->l - z->c; (void)m33; /* do, line 706 */ + { int ret = r_step7(z); /* call step7, line 706 */ + if (ret == 0) goto lab32; + if (ret < 0) return ret; + } + lab32: + z->c = z->l - m33; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * greek_UTF_8_create_env(void) { return SN_create_env(1, 0, 1); } + +extern void greek_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c b/src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c new file mode 100644 index 0000000..d8ae15a --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c @@ -0,0 +1,889 @@ +/* This file was generated automatically by the Snowball to ISO C compiler */ +/* http://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int hungarian_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_double(struct SN_env * z); +static int r_undouble(struct SN_env * z); +static int r_factive(struct SN_env * z); +static int r_instrum(struct SN_env * z); +static int r_plur_owner(struct SN_env * z); +static int r_sing_owner(struct SN_env * z); +static int r_owned(struct SN_env * z); +static int r_plural(struct SN_env * z); +static int r_case_other(struct SN_env * z); +static int r_case_special(struct SN_env * z); +static int r_case(struct SN_env * z); +static int r_v_ending(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * hungarian_UTF_8_create_env(void); +extern void hungarian_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[2] = { 'c', 's' }; +static const symbol s_0_1[3] = { 'd', 'z', 's' }; +static const symbol s_0_2[2] = { 'g', 'y' }; +static const symbol s_0_3[2] = { 'l', 'y' }; +static const symbol s_0_4[2] = { 'n', 'y' }; +static const symbol s_0_5[2] = { 's', 'z' }; +static const symbol s_0_6[2] = { 't', 'y' }; +static const symbol s_0_7[2] = { 'z', 's' }; + +static const struct among a_0[8] = +{ +/* 0 */ { 2, s_0_0, -1, -1, 0}, +/* 1 */ { 3, s_0_1, -1, -1, 0}, +/* 2 */ { 2, s_0_2, -1, -1, 0}, +/* 3 */ { 2, s_0_3, -1, -1, 0}, +/* 4 */ { 2, s_0_4, -1, -1, 0}, +/* 5 */ { 2, s_0_5, -1, -1, 0}, +/* 6 */ { 2, s_0_6, -1, -1, 0}, +/* 7 */ { 2, s_0_7, -1, -1, 0} +}; + +static const symbol s_1_0[2] = { 0xC3, 0xA1 }; +static const symbol s_1_1[2] = { 0xC3, 0xA9 }; + +static const struct among a_1[2] = +{ +/* 0 */ { 2, s_1_0, -1, 1, 0}, +/* 1 */ { 2, s_1_1, -1, 2, 0} +}; + +static const symbol s_2_0[2] = { 'b', 'b' }; +static const symbol s_2_1[2] = { 'c', 'c' }; +static const symbol s_2_2[2] = { 'd', 'd' }; +static const symbol s_2_3[2] = { 'f', 'f' }; +static const symbol s_2_4[2] = { 'g', 'g' }; +static const symbol s_2_5[2] = { 'j', 'j' }; +static const symbol s_2_6[2] = { 'k', 'k' }; +static const symbol s_2_7[2] = { 'l', 'l' }; +static const symbol s_2_8[2] = { 'm', 'm' }; +static const symbol s_2_9[2] = { 'n', 'n' }; +static const symbol s_2_10[2] = { 'p', 'p' }; +static const symbol s_2_11[2] = { 'r', 'r' }; +static const symbol s_2_12[3] = { 'c', 'c', 's' }; +static const symbol s_2_13[2] = { 's', 's' }; +static const symbol s_2_14[3] = { 'z', 'z', 's' }; +static const symbol s_2_15[2] = { 't', 't' }; +static const symbol s_2_16[2] = { 'v', 'v' }; +static const symbol s_2_17[3] = { 'g', 'g', 'y' }; +static const symbol s_2_18[3] = { 'l', 'l', 'y' }; +static const symbol s_2_19[3] = { 'n', 'n', 'y' }; +static const symbol s_2_20[3] = { 't', 't', 'y' }; +static const symbol s_2_21[3] = { 's', 's', 'z' }; +static const symbol s_2_22[2] = { 'z', 'z' }; + +static const struct among a_2[23] = +{ +/* 0 */ { 2, s_2_0, -1, -1, 0}, +/* 1 */ { 2, s_2_1, -1, -1, 0}, +/* 2 */ { 2, s_2_2, -1, -1, 0}, +/* 3 */ { 2, s_2_3, -1, -1, 0}, +/* 4 */ { 2, s_2_4, -1, -1, 0}, +/* 5 */ { 2, s_2_5, -1, -1, 0}, +/* 6 */ { 2, s_2_6, -1, -1, 0}, +/* 7 */ { 2, s_2_7, -1, -1, 0}, +/* 8 */ { 2, s_2_8, -1, -1, 0}, +/* 9 */ { 2, s_2_9, -1, -1, 0}, +/* 10 */ { 2, s_2_10, -1, -1, 0}, +/* 11 */ { 2, s_2_11, -1, -1, 0}, +/* 12 */ { 3, s_2_12, -1, -1, 0}, +/* 13 */ { 2, s_2_13, -1, -1, 0}, +/* 14 */ { 3, s_2_14, -1, -1, 0}, +/* 15 */ { 2, s_2_15, -1, -1, 0}, +/* 16 */ { 2, s_2_16, -1, -1, 0}, +/* 17 */ { 3, s_2_17, -1, -1, 0}, +/* 18 */ { 3, s_2_18, -1, -1, 0}, +/* 19 */ { 3, s_2_19, -1, -1, 0}, +/* 20 */ { 3, s_2_20, -1, -1, 0}, +/* 21 */ { 3, s_2_21, -1, -1, 0}, +/* 22 */ { 2, s_2_22, -1, -1, 0} +}; + +static const symbol s_3_0[2] = { 'a', 'l' }; +static const symbol s_3_1[2] = { 'e', 'l' }; + +static const struct among a_3[2] = +{ +/* 0 */ { 2, s_3_0, -1, 1, 0}, +/* 1 */ { 2, s_3_1, -1, 1, 0} +}; + +static const symbol s_4_0[2] = { 'b', 'a' }; +static const symbol s_4_1[2] = { 'r', 'a' }; +static const symbol s_4_2[2] = { 'b', 'e' }; +static const symbol s_4_3[2] = { 'r', 'e' }; +static const symbol s_4_4[2] = { 'i', 'g' }; +static const symbol s_4_5[3] = { 'n', 'a', 'k' }; +static const symbol s_4_6[3] = { 'n', 'e', 'k' }; +static const symbol s_4_7[3] = { 'v', 'a', 'l' }; +static const symbol s_4_8[3] = { 'v', 'e', 'l' }; +static const symbol s_4_9[2] = { 'u', 'l' }; +static const symbol s_4_10[4] = { 'b', 0xC5, 0x91, 'l' }; +static const symbol s_4_11[4] = { 'r', 0xC5, 0x91, 'l' }; +static const symbol s_4_12[4] = { 't', 0xC5, 0x91, 'l' }; +static const symbol s_4_13[4] = { 'n', 0xC3, 0xA1, 'l' }; +static const symbol s_4_14[4] = { 'n', 0xC3, 0xA9, 'l' }; +static const symbol s_4_15[4] = { 'b', 0xC3, 0xB3, 'l' }; +static const symbol s_4_16[4] = { 'r', 0xC3, 0xB3, 'l' }; +static const symbol s_4_17[4] = { 't', 0xC3, 0xB3, 'l' }; +static const symbol s_4_18[3] = { 0xC3, 0xBC, 'l' }; +static const symbol s_4_19[1] = { 'n' }; +static const symbol s_4_20[2] = { 'a', 'n' }; +static const symbol s_4_21[3] = { 'b', 'a', 'n' }; +static const symbol s_4_22[2] = { 'e', 'n' }; +static const symbol s_4_23[3] = { 'b', 'e', 'n' }; +static const symbol s_4_24[7] = { 'k', 0xC3, 0xA9, 'p', 'p', 'e', 'n' }; +static const symbol s_4_25[2] = { 'o', 'n' }; +static const symbol s_4_26[3] = { 0xC3, 0xB6, 'n' }; +static const symbol s_4_27[5] = { 'k', 0xC3, 0xA9, 'p', 'p' }; +static const symbol s_4_28[3] = { 'k', 'o', 'r' }; +static const symbol s_4_29[1] = { 't' }; +static const symbol s_4_30[2] = { 'a', 't' }; +static const symbol s_4_31[2] = { 'e', 't' }; +static const symbol s_4_32[5] = { 'k', 0xC3, 0xA9, 'n', 't' }; +static const symbol s_4_33[7] = { 'a', 'n', 'k', 0xC3, 0xA9, 'n', 't' }; +static const symbol s_4_34[7] = { 'e', 'n', 'k', 0xC3, 0xA9, 'n', 't' }; +static const symbol s_4_35[7] = { 'o', 'n', 'k', 0xC3, 0xA9, 'n', 't' }; +static const symbol s_4_36[2] = { 'o', 't' }; +static const symbol s_4_37[4] = { 0xC3, 0xA9, 'r', 't' }; +static const symbol s_4_38[3] = { 0xC3, 0xB6, 't' }; +static const symbol s_4_39[3] = { 'h', 'e', 'z' }; +static const symbol s_4_40[3] = { 'h', 'o', 'z' }; +static const symbol s_4_41[4] = { 'h', 0xC3, 0xB6, 'z' }; +static const symbol s_4_42[3] = { 'v', 0xC3, 0xA1 }; +static const symbol s_4_43[3] = { 'v', 0xC3, 0xA9 }; + +static const struct among a_4[44] = +{ +/* 0 */ { 2, s_4_0, -1, -1, 0}, +/* 1 */ { 2, s_4_1, -1, -1, 0}, +/* 2 */ { 2, s_4_2, -1, -1, 0}, +/* 3 */ { 2, s_4_3, -1, -1, 0}, +/* 4 */ { 2, s_4_4, -1, -1, 0}, +/* 5 */ { 3, s_4_5, -1, -1, 0}, +/* 6 */ { 3, s_4_6, -1, -1, 0}, +/* 7 */ { 3, s_4_7, -1, -1, 0}, +/* 8 */ { 3, s_4_8, -1, -1, 0}, +/* 9 */ { 2, s_4_9, -1, -1, 0}, +/* 10 */ { 4, s_4_10, -1, -1, 0}, +/* 11 */ { 4, s_4_11, -1, -1, 0}, +/* 12 */ { 4, s_4_12, -1, -1, 0}, +/* 13 */ { 4, s_4_13, -1, -1, 0}, +/* 14 */ { 4, s_4_14, -1, -1, 0}, +/* 15 */ { 4, s_4_15, -1, -1, 0}, +/* 16 */ { 4, s_4_16, -1, -1, 0}, +/* 17 */ { 4, s_4_17, -1, -1, 0}, +/* 18 */ { 3, s_4_18, -1, -1, 0}, +/* 19 */ { 1, s_4_19, -1, -1, 0}, +/* 20 */ { 2, s_4_20, 19, -1, 0}, +/* 21 */ { 3, s_4_21, 20, -1, 0}, +/* 22 */ { 2, s_4_22, 19, -1, 0}, +/* 23 */ { 3, s_4_23, 22, -1, 0}, +/* 24 */ { 7, s_4_24, 22, -1, 0}, +/* 25 */ { 2, s_4_25, 19, -1, 0}, +/* 26 */ { 3, s_4_26, 19, -1, 0}, +/* 27 */ { 5, s_4_27, -1, -1, 0}, +/* 28 */ { 3, s_4_28, -1, -1, 0}, +/* 29 */ { 1, s_4_29, -1, -1, 0}, +/* 30 */ { 2, s_4_30, 29, -1, 0}, +/* 31 */ { 2, s_4_31, 29, -1, 0}, +/* 32 */ { 5, s_4_32, 29, -1, 0}, +/* 33 */ { 7, s_4_33, 32, -1, 0}, +/* 34 */ { 7, s_4_34, 32, -1, 0}, +/* 35 */ { 7, s_4_35, 32, -1, 0}, +/* 36 */ { 2, s_4_36, 29, -1, 0}, +/* 37 */ { 4, s_4_37, 29, -1, 0}, +/* 38 */ { 3, s_4_38, 29, -1, 0}, +/* 39 */ { 3, s_4_39, -1, -1, 0}, +/* 40 */ { 3, s_4_40, -1, -1, 0}, +/* 41 */ { 4, s_4_41, -1, -1, 0}, +/* 42 */ { 3, s_4_42, -1, -1, 0}, +/* 43 */ { 3, s_4_43, -1, -1, 0} +}; + +static const symbol s_5_0[3] = { 0xC3, 0xA1, 'n' }; +static const symbol s_5_1[3] = { 0xC3, 0xA9, 'n' }; +static const symbol s_5_2[8] = { 0xC3, 0xA1, 'n', 'k', 0xC3, 0xA9, 'n', 't' }; + +static const struct among a_5[3] = +{ +/* 0 */ { 3, s_5_0, -1, 2, 0}, +/* 1 */ { 3, s_5_1, -1, 1, 0}, +/* 2 */ { 8, s_5_2, -1, 2, 0} +}; + +static const symbol s_6_0[4] = { 's', 't', 'u', 'l' }; +static const symbol s_6_1[5] = { 'a', 's', 't', 'u', 'l' }; +static const symbol s_6_2[6] = { 0xC3, 0xA1, 's', 't', 'u', 'l' }; +static const symbol s_6_3[5] = { 's', 't', 0xC3, 0xBC, 'l' }; +static const symbol s_6_4[6] = { 'e', 's', 't', 0xC3, 0xBC, 'l' }; +static const symbol s_6_5[7] = { 0xC3, 0xA9, 's', 't', 0xC3, 0xBC, 'l' }; + +static const struct among a_6[6] = +{ +/* 0 */ { 4, s_6_0, -1, 1, 0}, +/* 1 */ { 5, s_6_1, 0, 1, 0}, +/* 2 */ { 6, s_6_2, 0, 2, 0}, +/* 3 */ { 5, s_6_3, -1, 1, 0}, +/* 4 */ { 6, s_6_4, 3, 1, 0}, +/* 5 */ { 7, s_6_5, 3, 3, 0} +}; + +static const symbol s_7_0[2] = { 0xC3, 0xA1 }; +static const symbol s_7_1[2] = { 0xC3, 0xA9 }; + +static const struct among a_7[2] = +{ +/* 0 */ { 2, s_7_0, -1, 1, 0}, +/* 1 */ { 2, s_7_1, -1, 1, 0} +}; + +static const symbol s_8_0[1] = { 'k' }; +static const symbol s_8_1[2] = { 'a', 'k' }; +static const symbol s_8_2[2] = { 'e', 'k' }; +static const symbol s_8_3[2] = { 'o', 'k' }; +static const symbol s_8_4[3] = { 0xC3, 0xA1, 'k' }; +static const symbol s_8_5[3] = { 0xC3, 0xA9, 'k' }; +static const symbol s_8_6[3] = { 0xC3, 0xB6, 'k' }; + +static const struct among a_8[7] = +{ +/* 0 */ { 1, s_8_0, -1, 3, 0}, +/* 1 */ { 2, s_8_1, 0, 3, 0}, +/* 2 */ { 2, s_8_2, 0, 3, 0}, +/* 3 */ { 2, s_8_3, 0, 3, 0}, +/* 4 */ { 3, s_8_4, 0, 1, 0}, +/* 5 */ { 3, s_8_5, 0, 2, 0}, +/* 6 */ { 3, s_8_6, 0, 3, 0} +}; + +static const symbol s_9_0[3] = { 0xC3, 0xA9, 'i' }; +static const symbol s_9_1[5] = { 0xC3, 0xA1, 0xC3, 0xA9, 'i' }; +static const symbol s_9_2[5] = { 0xC3, 0xA9, 0xC3, 0xA9, 'i' }; +static const symbol s_9_3[2] = { 0xC3, 0xA9 }; +static const symbol s_9_4[3] = { 'k', 0xC3, 0xA9 }; +static const symbol s_9_5[4] = { 'a', 'k', 0xC3, 0xA9 }; +static const symbol s_9_6[4] = { 'e', 'k', 0xC3, 0xA9 }; +static const symbol s_9_7[4] = { 'o', 'k', 0xC3, 0xA9 }; +static const symbol s_9_8[5] = { 0xC3, 0xA1, 'k', 0xC3, 0xA9 }; +static const symbol s_9_9[5] = { 0xC3, 0xA9, 'k', 0xC3, 0xA9 }; +static const symbol s_9_10[5] = { 0xC3, 0xB6, 'k', 0xC3, 0xA9 }; +static const symbol s_9_11[4] = { 0xC3, 0xA9, 0xC3, 0xA9 }; + +static const struct among a_9[12] = +{ +/* 0 */ { 3, s_9_0, -1, 1, 0}, +/* 1 */ { 5, s_9_1, 0, 3, 0}, +/* 2 */ { 5, s_9_2, 0, 2, 0}, +/* 3 */ { 2, s_9_3, -1, 1, 0}, +/* 4 */ { 3, s_9_4, 3, 1, 0}, +/* 5 */ { 4, s_9_5, 4, 1, 0}, +/* 6 */ { 4, s_9_6, 4, 1, 0}, +/* 7 */ { 4, s_9_7, 4, 1, 0}, +/* 8 */ { 5, s_9_8, 4, 3, 0}, +/* 9 */ { 5, s_9_9, 4, 2, 0}, +/* 10 */ { 5, s_9_10, 4, 1, 0}, +/* 11 */ { 4, s_9_11, 3, 2, 0} +}; + +static const symbol s_10_0[1] = { 'a' }; +static const symbol s_10_1[2] = { 'j', 'a' }; +static const symbol s_10_2[1] = { 'd' }; +static const symbol s_10_3[2] = { 'a', 'd' }; +static const symbol s_10_4[2] = { 'e', 'd' }; +static const symbol s_10_5[2] = { 'o', 'd' }; +static const symbol s_10_6[3] = { 0xC3, 0xA1, 'd' }; +static const symbol s_10_7[3] = { 0xC3, 0xA9, 'd' }; +static const symbol s_10_8[3] = { 0xC3, 0xB6, 'd' }; +static const symbol s_10_9[1] = { 'e' }; +static const symbol s_10_10[2] = { 'j', 'e' }; +static const symbol s_10_11[2] = { 'n', 'k' }; +static const symbol s_10_12[3] = { 'u', 'n', 'k' }; +static const symbol s_10_13[4] = { 0xC3, 0xA1, 'n', 'k' }; +static const symbol s_10_14[4] = { 0xC3, 0xA9, 'n', 'k' }; +static const symbol s_10_15[4] = { 0xC3, 0xBC, 'n', 'k' }; +static const symbol s_10_16[2] = { 'u', 'k' }; +static const symbol s_10_17[3] = { 'j', 'u', 'k' }; +static const symbol s_10_18[5] = { 0xC3, 0xA1, 'j', 'u', 'k' }; +static const symbol s_10_19[3] = { 0xC3, 0xBC, 'k' }; +static const symbol s_10_20[4] = { 'j', 0xC3, 0xBC, 'k' }; +static const symbol s_10_21[6] = { 0xC3, 0xA9, 'j', 0xC3, 0xBC, 'k' }; +static const symbol s_10_22[1] = { 'm' }; +static const symbol s_10_23[2] = { 'a', 'm' }; +static const symbol s_10_24[2] = { 'e', 'm' }; +static const symbol s_10_25[2] = { 'o', 'm' }; +static const symbol s_10_26[3] = { 0xC3, 0xA1, 'm' }; +static const symbol s_10_27[3] = { 0xC3, 0xA9, 'm' }; +static const symbol s_10_28[1] = { 'o' }; +static const symbol s_10_29[2] = { 0xC3, 0xA1 }; +static const symbol s_10_30[2] = { 0xC3, 0xA9 }; + +static const struct among a_10[31] = +{ +/* 0 */ { 1, s_10_0, -1, 1, 0}, +/* 1 */ { 2, s_10_1, 0, 1, 0}, +/* 2 */ { 1, s_10_2, -1, 1, 0}, +/* 3 */ { 2, s_10_3, 2, 1, 0}, +/* 4 */ { 2, s_10_4, 2, 1, 0}, +/* 5 */ { 2, s_10_5, 2, 1, 0}, +/* 6 */ { 3, s_10_6, 2, 2, 0}, +/* 7 */ { 3, s_10_7, 2, 3, 0}, +/* 8 */ { 3, s_10_8, 2, 1, 0}, +/* 9 */ { 1, s_10_9, -1, 1, 0}, +/* 10 */ { 2, s_10_10, 9, 1, 0}, +/* 11 */ { 2, s_10_11, -1, 1, 0}, +/* 12 */ { 3, s_10_12, 11, 1, 0}, +/* 13 */ { 4, s_10_13, 11, 2, 0}, +/* 14 */ { 4, s_10_14, 11, 3, 0}, +/* 15 */ { 4, s_10_15, 11, 1, 0}, +/* 16 */ { 2, s_10_16, -1, 1, 0}, +/* 17 */ { 3, s_10_17, 16, 1, 0}, +/* 18 */ { 5, s_10_18, 17, 2, 0}, +/* 19 */ { 3, s_10_19, -1, 1, 0}, +/* 20 */ { 4, s_10_20, 19, 1, 0}, +/* 21 */ { 6, s_10_21, 20, 3, 0}, +/* 22 */ { 1, s_10_22, -1, 1, 0}, +/* 23 */ { 2, s_10_23, 22, 1, 0}, +/* 24 */ { 2, s_10_24, 22, 1, 0}, +/* 25 */ { 2, s_10_25, 22, 1, 0}, +/* 26 */ { 3, s_10_26, 22, 2, 0}, +/* 27 */ { 3, s_10_27, 22, 3, 0}, +/* 28 */ { 1, s_10_28, -1, 1, 0}, +/* 29 */ { 2, s_10_29, -1, 2, 0}, +/* 30 */ { 2, s_10_30, -1, 3, 0} +}; + +static const symbol s_11_0[2] = { 'i', 'd' }; +static const symbol s_11_1[3] = { 'a', 'i', 'd' }; +static const symbol s_11_2[4] = { 'j', 'a', 'i', 'd' }; +static const symbol s_11_3[3] = { 'e', 'i', 'd' }; +static const symbol s_11_4[4] = { 'j', 'e', 'i', 'd' }; +static const symbol s_11_5[4] = { 0xC3, 0xA1, 'i', 'd' }; +static const symbol s_11_6[4] = { 0xC3, 0xA9, 'i', 'd' }; +static const symbol s_11_7[1] = { 'i' }; +static const symbol s_11_8[2] = { 'a', 'i' }; +static const symbol s_11_9[3] = { 'j', 'a', 'i' }; +static const symbol s_11_10[2] = { 'e', 'i' }; +static const symbol s_11_11[3] = { 'j', 'e', 'i' }; +static const symbol s_11_12[3] = { 0xC3, 0xA1, 'i' }; +static const symbol s_11_13[3] = { 0xC3, 0xA9, 'i' }; +static const symbol s_11_14[4] = { 'i', 't', 'e', 'k' }; +static const symbol s_11_15[5] = { 'e', 'i', 't', 'e', 'k' }; +static const symbol s_11_16[6] = { 'j', 'e', 'i', 't', 'e', 'k' }; +static const symbol s_11_17[6] = { 0xC3, 0xA9, 'i', 't', 'e', 'k' }; +static const symbol s_11_18[2] = { 'i', 'k' }; +static const symbol s_11_19[3] = { 'a', 'i', 'k' }; +static const symbol s_11_20[4] = { 'j', 'a', 'i', 'k' }; +static const symbol s_11_21[3] = { 'e', 'i', 'k' }; +static const symbol s_11_22[4] = { 'j', 'e', 'i', 'k' }; +static const symbol s_11_23[4] = { 0xC3, 0xA1, 'i', 'k' }; +static const symbol s_11_24[4] = { 0xC3, 0xA9, 'i', 'k' }; +static const symbol s_11_25[3] = { 'i', 'n', 'k' }; +static const symbol s_11_26[4] = { 'a', 'i', 'n', 'k' }; +static const symbol s_11_27[5] = { 'j', 'a', 'i', 'n', 'k' }; +static const symbol s_11_28[4] = { 'e', 'i', 'n', 'k' }; +static const symbol s_11_29[5] = { 'j', 'e', 'i', 'n', 'k' }; +static const symbol s_11_30[5] = { 0xC3, 0xA1, 'i', 'n', 'k' }; +static const symbol s_11_31[5] = { 0xC3, 0xA9, 'i', 'n', 'k' }; +static const symbol s_11_32[5] = { 'a', 'i', 't', 'o', 'k' }; +static const symbol s_11_33[6] = { 'j', 'a', 'i', 't', 'o', 'k' }; +static const symbol s_11_34[6] = { 0xC3, 0xA1, 'i', 't', 'o', 'k' }; +static const symbol s_11_35[2] = { 'i', 'm' }; +static const symbol s_11_36[3] = { 'a', 'i', 'm' }; +static const symbol s_11_37[4] = { 'j', 'a', 'i', 'm' }; +static const symbol s_11_38[3] = { 'e', 'i', 'm' }; +static const symbol s_11_39[4] = { 'j', 'e', 'i', 'm' }; +static const symbol s_11_40[4] = { 0xC3, 0xA1, 'i', 'm' }; +static const symbol s_11_41[4] = { 0xC3, 0xA9, 'i', 'm' }; + +static const struct among a_11[42] = +{ +/* 0 */ { 2, s_11_0, -1, 1, 0}, +/* 1 */ { 3, s_11_1, 0, 1, 0}, +/* 2 */ { 4, s_11_2, 1, 1, 0}, +/* 3 */ { 3, s_11_3, 0, 1, 0}, +/* 4 */ { 4, s_11_4, 3, 1, 0}, +/* 5 */ { 4, s_11_5, 0, 2, 0}, +/* 6 */ { 4, s_11_6, 0, 3, 0}, +/* 7 */ { 1, s_11_7, -1, 1, 0}, +/* 8 */ { 2, s_11_8, 7, 1, 0}, +/* 9 */ { 3, s_11_9, 8, 1, 0}, +/* 10 */ { 2, s_11_10, 7, 1, 0}, +/* 11 */ { 3, s_11_11, 10, 1, 0}, +/* 12 */ { 3, s_11_12, 7, 2, 0}, +/* 13 */ { 3, s_11_13, 7, 3, 0}, +/* 14 */ { 4, s_11_14, -1, 1, 0}, +/* 15 */ { 5, s_11_15, 14, 1, 0}, +/* 16 */ { 6, s_11_16, 15, 1, 0}, +/* 17 */ { 6, s_11_17, 14, 3, 0}, +/* 18 */ { 2, s_11_18, -1, 1, 0}, +/* 19 */ { 3, s_11_19, 18, 1, 0}, +/* 20 */ { 4, s_11_20, 19, 1, 0}, +/* 21 */ { 3, s_11_21, 18, 1, 0}, +/* 22 */ { 4, s_11_22, 21, 1, 0}, +/* 23 */ { 4, s_11_23, 18, 2, 0}, +/* 24 */ { 4, s_11_24, 18, 3, 0}, +/* 25 */ { 3, s_11_25, -1, 1, 0}, +/* 26 */ { 4, s_11_26, 25, 1, 0}, +/* 27 */ { 5, s_11_27, 26, 1, 0}, +/* 28 */ { 4, s_11_28, 25, 1, 0}, +/* 29 */ { 5, s_11_29, 28, 1, 0}, +/* 30 */ { 5, s_11_30, 25, 2, 0}, +/* 31 */ { 5, s_11_31, 25, 3, 0}, +/* 32 */ { 5, s_11_32, -1, 1, 0}, +/* 33 */ { 6, s_11_33, 32, 1, 0}, +/* 34 */ { 6, s_11_34, -1, 2, 0}, +/* 35 */ { 2, s_11_35, -1, 1, 0}, +/* 36 */ { 3, s_11_36, 35, 1, 0}, +/* 37 */ { 4, s_11_37, 36, 1, 0}, +/* 38 */ { 3, s_11_38, 35, 1, 0}, +/* 39 */ { 4, s_11_39, 38, 1, 0}, +/* 40 */ { 4, s_11_40, 35, 2, 0}, +/* 41 */ { 4, s_11_41, 35, 3, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 36, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 }; + +static const symbol s_0[] = { 'a' }; +static const symbol s_1[] = { 'e' }; +static const symbol s_2[] = { 'e' }; +static const symbol s_3[] = { 'a' }; +static const symbol s_4[] = { 'a' }; +static const symbol s_5[] = { 'e' }; +static const symbol s_6[] = { 'a' }; +static const symbol s_7[] = { 'e' }; +static const symbol s_8[] = { 'e' }; +static const symbol s_9[] = { 'a' }; +static const symbol s_10[] = { 'a' }; +static const symbol s_11[] = { 'e' }; +static const symbol s_12[] = { 'a' }; +static const symbol s_13[] = { 'e' }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 46 */ + { int c1 = z->c; /* or, line 51 */ + if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab1; /* grouping v, line 48 */ + if (in_grouping_U(z, g_v, 97, 369, 1) < 0) goto lab1; /* goto */ /* non v, line 48 */ + { int c2 = z->c; /* or, line 49 */ + if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3; /* among, line 49 */ + if (!(find_among(z, a_0, 8))) goto lab3; + goto lab2; + lab3: + z->c = c2; + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab1; + z->c = ret; /* next, line 49 */ + } + } + lab2: + z->I[0] = z->c; /* setmark p1, line 50 */ + goto lab0; + lab1: + z->c = c1; + if (out_grouping_U(z, g_v, 97, 369, 0)) return 0; /* non v, line 53 */ + { /* gopast */ /* grouping v, line 53 */ + int ret = out_grouping_U(z, g_v, 97, 369, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 53 */ + } +lab0: + return 1; +} + +static int r_R1(struct SN_env * z) { /* backwardmode */ + if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 58 */ + return 1; +} + +static int r_v_ending(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 61 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0; /* substring, line 61 */ + among_var = find_among_b(z, a_1, 2); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 61 */ + { int ret = r_R1(z); /* call R1, line 61 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 61 */ + case 1: + { int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_1); /* <-, line 63 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_double(struct SN_env * z) { /* backwardmode */ + { int m_test1 = z->l - z->c; /* test, line 68 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 68 */ + if (!(find_among_b(z, a_2, 23))) return 0; + z->c = z->l - m_test1; + } + return 1; +} + +static int r_undouble(struct SN_env * z) { /* backwardmode */ + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 73 */ + } + z->ket = z->c; /* [, line 73 */ + { int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 1); /* hop, line 73 */ + if (ret < 0) return 0; + z->c = ret; + } + z->bra = z->c; /* ], line 73 */ + { int ret = slice_del(z); /* delete, line 73 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_instrum(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 77 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 77 */ + if (!(find_among_b(z, a_3, 2))) return 0; + z->bra = z->c; /* ], line 77 */ + { int ret = r_R1(z); /* call R1, line 77 */ + if (ret <= 0) return ret; + } + { int ret = r_double(z); /* call double, line 78 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 81 */ + if (ret < 0) return ret; + } + { int ret = r_undouble(z); /* call undouble, line 82 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_case(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 87 */ + if (!(find_among_b(z, a_4, 44))) return 0; /* substring, line 87 */ + z->bra = z->c; /* ], line 87 */ + { int ret = r_R1(z); /* call R1, line 87 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 111 */ + if (ret < 0) return ret; + } + { int ret = r_v_ending(z); /* call v_ending, line 112 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_case_special(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 116 */ + if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0; /* substring, line 116 */ + among_var = find_among_b(z, a_5, 3); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 116 */ + { int ret = r_R1(z); /* call R1, line 116 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 116 */ + case 1: + { int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_3); /* <-, line 118 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_case_other(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 124 */ + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 124 */ + among_var = find_among_b(z, a_6, 6); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 124 */ + { int ret = r_R1(z); /* call R1, line 124 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 124 */ + case 1: + { int ret = slice_del(z); /* delete, line 125 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_4); /* <-, line 127 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_5); /* <-, line 128 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_factive(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 133 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0; /* substring, line 133 */ + if (!(find_among_b(z, a_7, 2))) return 0; + z->bra = z->c; /* ], line 133 */ + { int ret = r_R1(z); /* call R1, line 133 */ + if (ret <= 0) return ret; + } + { int ret = r_double(z); /* call double, line 134 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 137 */ + if (ret < 0) return ret; + } + { int ret = r_undouble(z); /* call undouble, line 138 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_plural(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 142 */ + if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0; /* substring, line 142 */ + among_var = find_among_b(z, a_8, 7); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 142 */ + { int ret = r_R1(z); /* call R1, line 142 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 142 */ + case 1: + { int ret = slice_from_s(z, 1, s_6); /* <-, line 143 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_7); /* <-, line 144 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 145 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_owned(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 154 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0; /* substring, line 154 */ + among_var = find_among_b(z, a_9, 12); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 154 */ + { int ret = r_R1(z); /* call R1, line 154 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 154 */ + case 1: + { int ret = slice_del(z); /* delete, line 155 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_8); /* <-, line 156 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_9); /* <-, line 157 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_sing_owner(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 168 */ + among_var = find_among_b(z, a_10, 31); /* substring, line 168 */ + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 168 */ + { int ret = r_R1(z); /* call R1, line 168 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 168 */ + case 1: + { int ret = slice_del(z); /* delete, line 169 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_10); /* <-, line 170 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_11); /* <-, line 171 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_plur_owner(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 193 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 193 */ + among_var = find_among_b(z, a_11, 42); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 193 */ + { int ret = r_R1(z); /* call R1, line 193 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 193 */ + case 1: + { int ret = slice_del(z); /* delete, line 194 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_12); /* <-, line 195 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_13); /* <-, line 196 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +extern int hungarian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 229 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 229 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + z->lb = z->c; z->c = z->l; /* backwards, line 230 */ + + { int m2 = z->l - z->c; (void)m2; /* do, line 231 */ + { int ret = r_instrum(z); /* call instrum, line 231 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + lab1: + z->c = z->l - m2; + } + { int m3 = z->l - z->c; (void)m3; /* do, line 232 */ + { int ret = r_case(z); /* call case, line 232 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + lab2: + z->c = z->l - m3; + } + { int m4 = z->l - z->c; (void)m4; /* do, line 233 */ + { int ret = r_case_special(z); /* call case_special, line 233 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + lab3: + z->c = z->l - m4; + } + { int m5 = z->l - z->c; (void)m5; /* do, line 234 */ + { int ret = r_case_other(z); /* call case_other, line 234 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + lab4: + z->c = z->l - m5; + } + { int m6 = z->l - z->c; (void)m6; /* do, line 235 */ + { int ret = r_factive(z); /* call factive, line 235 */ + if (ret == 0) goto lab5; + if (ret < 0) return ret; + } + lab5: + z->c = z->l - m6; + } + { int m7 = z->l - z->c; (void)m7; /* do, line 236 */ + { int ret = r_owned(z); /* call owned, line 236 */ + if (ret == 0) goto lab6; + if (ret < 0) return ret; + } + lab6: + z->c = z->l - m7; + } + { int m8 = z->l - z->c; (void)m8; /* do, line 237 */ + { int ret = r_sing_owner(z); /* call sing_owner, line 237 */ + if (ret == 0) goto lab7; + if (ret < 0) return ret; + } + lab7: + z->c = z->l - m8; + } + { int m9 = z->l - z->c; (void)m9; /* do, line 238 */ + { int ret = r_plur_owner(z); /* call plur_owner, line 238 */ + if (ret == 0) goto lab8; + if (ret < 0) return ret; + } + lab8: + z->c = z->l - m9; + } + { int m10 = z->l - z->c; (void)m10; /* do, line 239 */ + { int ret = r_plural(z); /* call plural, line 239 */ + if (ret == 0) goto lab9; + if (ret < 0) return ret; + } + lab9: + z->c = z->l - m10; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * hungarian_UTF_8_create_env(void) { return SN_create_env(0, 1, 0); } + +extern void hungarian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c b/src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c new file mode 100644 index 0000000..846e6e7 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c @@ -0,0 +1,414 @@ +/* This file was generated automatically by the Snowball to ISO C compiler */ +/* http://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int indonesian_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); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_irish.c b/src/backend/snowball/libstemmer/stem_UTF_8_irish.c new file mode 100644 index 0000000..239c967 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_irish.c @@ -0,0 +1,490 @@ +/* This file was generated automatically by the Snowball to ISO C compiler */ +/* http://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int irish_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); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_italian.c b/src/backend/snowball/libstemmer/stem_UTF_8_italian.c new file mode 100644 index 0000000..7546960 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_italian.c @@ -0,0 +1,1041 @@ +/* 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 italian_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_vowel_suffix(struct SN_env * z); +static int r_verb_suffix(struct SN_env * z); +static int r_standard_suffix(struct SN_env * z); +static int r_attached_pronoun(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * italian_UTF_8_create_env(void); +extern void italian_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[2] = { 'q', 'u' }; +static const symbol s_0_2[2] = { 0xC3, 0xA1 }; +static const symbol s_0_3[2] = { 0xC3, 0xA9 }; +static const symbol s_0_4[2] = { 0xC3, 0xAD }; +static const symbol s_0_5[2] = { 0xC3, 0xB3 }; +static const symbol s_0_6[2] = { 0xC3, 0xBA }; + +static const struct among a_0[7] = +{ +/* 0 */ { 0, 0, -1, 7, 0}, +/* 1 */ { 2, s_0_1, 0, 6, 0}, +/* 2 */ { 2, s_0_2, 0, 1, 0}, +/* 3 */ { 2, s_0_3, 0, 2, 0}, +/* 4 */ { 2, s_0_4, 0, 3, 0}, +/* 5 */ { 2, s_0_5, 0, 4, 0}, +/* 6 */ { 2, s_0_6, 0, 5, 0} +}; + +static const symbol s_1_1[1] = { 'I' }; +static const symbol s_1_2[1] = { 'U' }; + +static const struct among a_1[3] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 1, s_1_1, 0, 1, 0}, +/* 2 */ { 1, s_1_2, 0, 2, 0} +}; + +static const symbol s_2_0[2] = { 'l', 'a' }; +static const symbol s_2_1[4] = { 'c', 'e', 'l', 'a' }; +static const symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' }; +static const symbol s_2_3[4] = { 'm', 'e', 'l', 'a' }; +static const symbol s_2_4[4] = { 't', 'e', 'l', 'a' }; +static const symbol s_2_5[4] = { 'v', 'e', 'l', 'a' }; +static const symbol s_2_6[2] = { 'l', 'e' }; +static const symbol s_2_7[4] = { 'c', 'e', 'l', 'e' }; +static const symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' }; +static const symbol s_2_9[4] = { 'm', 'e', 'l', 'e' }; +static const symbol s_2_10[4] = { 't', 'e', 'l', 'e' }; +static const symbol s_2_11[4] = { 'v', 'e', 'l', 'e' }; +static const symbol s_2_12[2] = { 'n', 'e' }; +static const symbol s_2_13[4] = { 'c', 'e', 'n', 'e' }; +static const symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' }; +static const symbol s_2_15[4] = { 'm', 'e', 'n', 'e' }; +static const symbol s_2_16[4] = { 's', 'e', 'n', 'e' }; +static const symbol s_2_17[4] = { 't', 'e', 'n', 'e' }; +static const symbol s_2_18[4] = { 'v', 'e', 'n', 'e' }; +static const symbol s_2_19[2] = { 'c', 'i' }; +static const symbol s_2_20[2] = { 'l', 'i' }; +static const symbol s_2_21[4] = { 'c', 'e', 'l', 'i' }; +static const symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' }; +static const symbol s_2_23[4] = { 'm', 'e', 'l', 'i' }; +static const symbol s_2_24[4] = { 't', 'e', 'l', 'i' }; +static const symbol s_2_25[4] = { 'v', 'e', 'l', 'i' }; +static const symbol s_2_26[3] = { 'g', 'l', 'i' }; +static const symbol s_2_27[2] = { 'm', 'i' }; +static const symbol s_2_28[2] = { 's', 'i' }; +static const symbol s_2_29[2] = { 't', 'i' }; +static const symbol s_2_30[2] = { 'v', 'i' }; +static const symbol s_2_31[2] = { 'l', 'o' }; +static const symbol s_2_32[4] = { 'c', 'e', 'l', 'o' }; +static const symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' }; +static const symbol s_2_34[4] = { 'm', 'e', 'l', 'o' }; +static const symbol s_2_35[4] = { 't', 'e', 'l', 'o' }; +static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' }; + +static const struct among a_2[37] = +{ +/* 0 */ { 2, s_2_0, -1, -1, 0}, +/* 1 */ { 4, s_2_1, 0, -1, 0}, +/* 2 */ { 6, s_2_2, 0, -1, 0}, +/* 3 */ { 4, s_2_3, 0, -1, 0}, +/* 4 */ { 4, s_2_4, 0, -1, 0}, +/* 5 */ { 4, s_2_5, 0, -1, 0}, +/* 6 */ { 2, s_2_6, -1, -1, 0}, +/* 7 */ { 4, s_2_7, 6, -1, 0}, +/* 8 */ { 6, s_2_8, 6, -1, 0}, +/* 9 */ { 4, s_2_9, 6, -1, 0}, +/* 10 */ { 4, s_2_10, 6, -1, 0}, +/* 11 */ { 4, s_2_11, 6, -1, 0}, +/* 12 */ { 2, s_2_12, -1, -1, 0}, +/* 13 */ { 4, s_2_13, 12, -1, 0}, +/* 14 */ { 6, s_2_14, 12, -1, 0}, +/* 15 */ { 4, s_2_15, 12, -1, 0}, +/* 16 */ { 4, s_2_16, 12, -1, 0}, +/* 17 */ { 4, s_2_17, 12, -1, 0}, +/* 18 */ { 4, s_2_18, 12, -1, 0}, +/* 19 */ { 2, s_2_19, -1, -1, 0}, +/* 20 */ { 2, s_2_20, -1, -1, 0}, +/* 21 */ { 4, s_2_21, 20, -1, 0}, +/* 22 */ { 6, s_2_22, 20, -1, 0}, +/* 23 */ { 4, s_2_23, 20, -1, 0}, +/* 24 */ { 4, s_2_24, 20, -1, 0}, +/* 25 */ { 4, s_2_25, 20, -1, 0}, +/* 26 */ { 3, s_2_26, 20, -1, 0}, +/* 27 */ { 2, s_2_27, -1, -1, 0}, +/* 28 */ { 2, s_2_28, -1, -1, 0}, +/* 29 */ { 2, s_2_29, -1, -1, 0}, +/* 30 */ { 2, s_2_30, -1, -1, 0}, +/* 31 */ { 2, s_2_31, -1, -1, 0}, +/* 32 */ { 4, s_2_32, 31, -1, 0}, +/* 33 */ { 6, s_2_33, 31, -1, 0}, +/* 34 */ { 4, s_2_34, 31, -1, 0}, +/* 35 */ { 4, s_2_35, 31, -1, 0}, +/* 36 */ { 4, s_2_36, 31, -1, 0} +}; + +static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' }; +static const symbol s_3_1[4] = { 'e', 'n', 'd', 'o' }; +static const symbol s_3_2[2] = { 'a', 'r' }; +static const symbol s_3_3[2] = { 'e', 'r' }; +static const symbol s_3_4[2] = { 'i', 'r' }; + +static const struct among a_3[5] = +{ +/* 0 */ { 4, s_3_0, -1, 1, 0}, +/* 1 */ { 4, s_3_1, -1, 1, 0}, +/* 2 */ { 2, s_3_2, -1, 2, 0}, +/* 3 */ { 2, s_3_3, -1, 2, 0}, +/* 4 */ { 2, s_3_4, -1, 2, 0} +}; + +static const symbol s_4_0[2] = { 'i', 'c' }; +static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_4_2[2] = { 'o', 's' }; +static const symbol s_4_3[2] = { 'i', 'v' }; + +static const struct among a_4[4] = +{ +/* 0 */ { 2, s_4_0, -1, -1, 0}, +/* 1 */ { 4, s_4_1, -1, -1, 0}, +/* 2 */ { 2, s_4_2, -1, -1, 0}, +/* 3 */ { 2, s_4_3, -1, 1, 0} +}; + +static const symbol s_5_0[2] = { 'i', 'c' }; +static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_5_2[2] = { 'i', 'v' }; + +static const struct among a_5[3] = +{ +/* 0 */ { 2, s_5_0, -1, 1, 0}, +/* 1 */ { 4, s_5_1, -1, 1, 0}, +/* 2 */ { 2, s_5_2, -1, 1, 0} +}; + +static const symbol s_6_0[3] = { 'i', 'c', 'a' }; +static const symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' }; +static const symbol s_6_2[3] = { 'o', 's', 'a' }; +static const symbol s_6_3[4] = { 'i', 's', 't', 'a' }; +static const symbol s_6_4[3] = { 'i', 'v', 'a' }; +static const symbol s_6_5[4] = { 'a', 'n', 'z', 'a' }; +static const symbol s_6_6[4] = { 'e', 'n', 'z', 'a' }; +static const symbol s_6_7[3] = { 'i', 'c', 'e' }; +static const symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' }; +static const symbol s_6_9[4] = { 'i', 'c', 'h', 'e' }; +static const symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' }; +static const symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' }; +static const symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' }; +static const symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' }; +static const symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' }; +static const symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' }; +static const symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' }; +static const symbol s_6_17[3] = { 'o', 's', 'e' }; +static const symbol s_6_18[4] = { 'a', 'n', 't', 'e' }; +static const symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' }; +static const symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' }; +static const symbol s_6_21[4] = { 'i', 's', 't', 'e' }; +static const symbol s_6_22[3] = { 'i', 'v', 'e' }; +static const symbol s_6_23[4] = { 'a', 'n', 'z', 'e' }; +static const symbol s_6_24[4] = { 'e', 'n', 'z', 'e' }; +static const symbol s_6_25[3] = { 'i', 'c', 'i' }; +static const symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' }; +static const symbol s_6_27[4] = { 'i', 'c', 'h', 'i' }; +static const symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' }; +static const symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' }; +static const symbol s_6_30[4] = { 'i', 's', 'm', 'i' }; +static const symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' }; +static const symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' }; +static const symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' }; +static const symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' }; +static const symbol s_6_35[3] = { 'o', 's', 'i' }; +static const symbol s_6_36[4] = { 'a', 'n', 't', 'i' }; +static const symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' }; +static const symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' }; +static const symbol s_6_39[4] = { 'i', 's', 't', 'i' }; +static const symbol s_6_40[3] = { 'i', 'v', 'i' }; +static const symbol s_6_41[3] = { 'i', 'c', 'o' }; +static const symbol s_6_42[4] = { 'i', 's', 'm', 'o' }; +static const symbol s_6_43[3] = { 'o', 's', 'o' }; +static const symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' }; +static const symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' }; +static const symbol s_6_46[3] = { 'i', 'v', 'o' }; +static const symbol s_6_47[4] = { 'i', 't', 0xC3, 0xA0 }; +static const symbol s_6_48[5] = { 'i', 's', 't', 0xC3, 0xA0 }; +static const symbol s_6_49[5] = { 'i', 's', 't', 0xC3, 0xA8 }; +static const symbol s_6_50[5] = { 'i', 's', 't', 0xC3, 0xAC }; + +static const struct among a_6[51] = +{ +/* 0 */ { 3, s_6_0, -1, 1, 0}, +/* 1 */ { 5, s_6_1, -1, 3, 0}, +/* 2 */ { 3, s_6_2, -1, 1, 0}, +/* 3 */ { 4, s_6_3, -1, 1, 0}, +/* 4 */ { 3, s_6_4, -1, 9, 0}, +/* 5 */ { 4, s_6_5, -1, 1, 0}, +/* 6 */ { 4, s_6_6, -1, 5, 0}, +/* 7 */ { 3, s_6_7, -1, 1, 0}, +/* 8 */ { 6, s_6_8, 7, 1, 0}, +/* 9 */ { 4, s_6_9, -1, 1, 0}, +/* 10 */ { 5, s_6_10, -1, 3, 0}, +/* 11 */ { 5, s_6_11, -1, 1, 0}, +/* 12 */ { 5, s_6_12, -1, 1, 0}, +/* 13 */ { 6, s_6_13, -1, 4, 0}, +/* 14 */ { 6, s_6_14, -1, 2, 0}, +/* 15 */ { 6, s_6_15, -1, 4, 0}, +/* 16 */ { 5, s_6_16, -1, 2, 0}, +/* 17 */ { 3, s_6_17, -1, 1, 0}, +/* 18 */ { 4, s_6_18, -1, 1, 0}, +/* 19 */ { 5, s_6_19, -1, 1, 0}, +/* 20 */ { 6, s_6_20, 19, 7, 0}, +/* 21 */ { 4, s_6_21, -1, 1, 0}, +/* 22 */ { 3, s_6_22, -1, 9, 0}, +/* 23 */ { 4, s_6_23, -1, 1, 0}, +/* 24 */ { 4, s_6_24, -1, 5, 0}, +/* 25 */ { 3, s_6_25, -1, 1, 0}, +/* 26 */ { 6, s_6_26, 25, 1, 0}, +/* 27 */ { 4, s_6_27, -1, 1, 0}, +/* 28 */ { 5, s_6_28, -1, 1, 0}, +/* 29 */ { 5, s_6_29, -1, 1, 0}, +/* 30 */ { 4, s_6_30, -1, 1, 0}, +/* 31 */ { 6, s_6_31, -1, 4, 0}, +/* 32 */ { 6, s_6_32, -1, 2, 0}, +/* 33 */ { 6, s_6_33, -1, 4, 0}, +/* 34 */ { 5, s_6_34, -1, 2, 0}, +/* 35 */ { 3, s_6_35, -1, 1, 0}, +/* 36 */ { 4, s_6_36, -1, 1, 0}, +/* 37 */ { 6, s_6_37, -1, 6, 0}, +/* 38 */ { 6, s_6_38, -1, 6, 0}, +/* 39 */ { 4, s_6_39, -1, 1, 0}, +/* 40 */ { 3, s_6_40, -1, 9, 0}, +/* 41 */ { 3, s_6_41, -1, 1, 0}, +/* 42 */ { 4, s_6_42, -1, 1, 0}, +/* 43 */ { 3, s_6_43, -1, 1, 0}, +/* 44 */ { 6, s_6_44, -1, 6, 0}, +/* 45 */ { 6, s_6_45, -1, 6, 0}, +/* 46 */ { 3, s_6_46, -1, 9, 0}, +/* 47 */ { 4, s_6_47, -1, 8, 0}, +/* 48 */ { 5, s_6_48, -1, 1, 0}, +/* 49 */ { 5, s_6_49, -1, 1, 0}, +/* 50 */ { 5, s_6_50, -1, 1, 0} +}; + +static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' }; +static const symbol s_7_1[4] = { 'e', 'n', 'd', 'a' }; +static const symbol s_7_2[3] = { 'a', 't', 'a' }; +static const symbol s_7_3[3] = { 'i', 't', 'a' }; +static const symbol s_7_4[3] = { 'u', 't', 'a' }; +static const symbol s_7_5[3] = { 'a', 'v', 'a' }; +static const symbol s_7_6[3] = { 'e', 'v', 'a' }; +static const symbol s_7_7[3] = { 'i', 'v', 'a' }; +static const symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' }; +static const symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' }; +static const symbol s_7_10[4] = { 'i', 's', 'c', 'e' }; +static const symbol s_7_11[4] = { 'e', 'n', 'd', 'e' }; +static const symbol s_7_12[3] = { 'a', 'r', 'e' }; +static const symbol s_7_13[3] = { 'e', 'r', 'e' }; +static const symbol s_7_14[3] = { 'i', 'r', 'e' }; +static const symbol s_7_15[4] = { 'a', 's', 's', 'e' }; +static const symbol s_7_16[3] = { 'a', 't', 'e' }; +static const symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' }; +static const symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' }; +static const symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' }; +static const symbol s_7_20[3] = { 'e', 't', 'e' }; +static const symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' }; +static const symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' }; +static const symbol s_7_23[3] = { 'i', 't', 'e' }; +static const symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' }; +static const symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' }; +static const symbol s_7_26[3] = { 'u', 't', 'e' }; +static const symbol s_7_27[4] = { 'e', 'r', 'a', 'i' }; +static const symbol s_7_28[4] = { 'i', 'r', 'a', 'i' }; +static const symbol s_7_29[4] = { 'i', 's', 'c', 'i' }; +static const symbol s_7_30[4] = { 'e', 'n', 'd', 'i' }; +static const symbol s_7_31[4] = { 'e', 'r', 'e', 'i' }; +static const symbol s_7_32[4] = { 'i', 'r', 'e', 'i' }; +static const symbol s_7_33[4] = { 'a', 's', 's', 'i' }; +static const symbol s_7_34[3] = { 'a', 't', 'i' }; +static const symbol s_7_35[3] = { 'i', 't', 'i' }; +static const symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' }; +static const symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' }; +static const symbol s_7_38[3] = { 'u', 't', 'i' }; +static const symbol s_7_39[3] = { 'a', 'v', 'i' }; +static const symbol s_7_40[3] = { 'e', 'v', 'i' }; +static const symbol s_7_41[3] = { 'i', 'v', 'i' }; +static const symbol s_7_42[4] = { 'i', 's', 'c', 'o' }; +static const symbol s_7_43[4] = { 'a', 'n', 'd', 'o' }; +static const symbol s_7_44[4] = { 'e', 'n', 'd', 'o' }; +static const symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' }; +static const symbol s_7_46[4] = { 'i', 'a', 'm', 'o' }; +static const symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' }; +static const symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' }; +static const symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' }; +static const symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' }; +static const symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' }; +static const symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' }; +static const symbol s_7_53[4] = { 'a', 'm', 'm', 'o' }; +static const symbol s_7_54[4] = { 'e', 'm', 'm', 'o' }; +static const symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' }; +static const symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' }; +static const symbol s_7_57[4] = { 'i', 'm', 'm', 'o' }; +static const symbol s_7_58[3] = { 'a', 'n', 'o' }; +static const symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' }; +static const symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' }; +static const symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' }; +static const symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' }; +static const symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' }; +static const symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' }; +static const symbol s_7_65[3] = { 'o', 'n', 'o' }; +static const symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' }; +static const symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' }; +static const symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' }; +static const symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' }; +static const symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' }; +static const symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' }; +static const symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' }; +static const symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' }; +static const symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' }; +static const symbol s_7_75[3] = { 'a', 't', 'o' }; +static const symbol s_7_76[3] = { 'i', 't', 'o' }; +static const symbol s_7_77[3] = { 'u', 't', 'o' }; +static const symbol s_7_78[3] = { 'a', 'v', 'o' }; +static const symbol s_7_79[3] = { 'e', 'v', 'o' }; +static const symbol s_7_80[3] = { 'i', 'v', 'o' }; +static const symbol s_7_81[2] = { 'a', 'r' }; +static const symbol s_7_82[2] = { 'i', 'r' }; +static const symbol s_7_83[4] = { 'e', 'r', 0xC3, 0xA0 }; +static const symbol s_7_84[4] = { 'i', 'r', 0xC3, 0xA0 }; +static const symbol s_7_85[4] = { 'e', 'r', 0xC3, 0xB2 }; +static const symbol s_7_86[4] = { 'i', 'r', 0xC3, 0xB2 }; + +static const struct among a_7[87] = +{ +/* 0 */ { 4, s_7_0, -1, 1, 0}, +/* 1 */ { 4, s_7_1, -1, 1, 0}, +/* 2 */ { 3, s_7_2, -1, 1, 0}, +/* 3 */ { 3, s_7_3, -1, 1, 0}, +/* 4 */ { 3, s_7_4, -1, 1, 0}, +/* 5 */ { 3, s_7_5, -1, 1, 0}, +/* 6 */ { 3, s_7_6, -1, 1, 0}, +/* 7 */ { 3, s_7_7, -1, 1, 0}, +/* 8 */ { 6, s_7_8, -1, 1, 0}, +/* 9 */ { 6, s_7_9, -1, 1, 0}, +/* 10 */ { 4, s_7_10, -1, 1, 0}, +/* 11 */ { 4, s_7_11, -1, 1, 0}, +/* 12 */ { 3, s_7_12, -1, 1, 0}, +/* 13 */ { 3, s_7_13, -1, 1, 0}, +/* 14 */ { 3, s_7_14, -1, 1, 0}, +/* 15 */ { 4, s_7_15, -1, 1, 0}, +/* 16 */ { 3, s_7_16, -1, 1, 0}, +/* 17 */ { 5, s_7_17, 16, 1, 0}, +/* 18 */ { 5, s_7_18, 16, 1, 0}, +/* 19 */ { 5, s_7_19, 16, 1, 0}, +/* 20 */ { 3, s_7_20, -1, 1, 0}, +/* 21 */ { 5, s_7_21, 20, 1, 0}, +/* 22 */ { 5, s_7_22, 20, 1, 0}, +/* 23 */ { 3, s_7_23, -1, 1, 0}, +/* 24 */ { 6, s_7_24, -1, 1, 0}, +/* 25 */ { 6, s_7_25, -1, 1, 0}, +/* 26 */ { 3, s_7_26, -1, 1, 0}, +/* 27 */ { 4, s_7_27, -1, 1, 0}, +/* 28 */ { 4, s_7_28, -1, 1, 0}, +/* 29 */ { 4, s_7_29, -1, 1, 0}, +/* 30 */ { 4, s_7_30, -1, 1, 0}, +/* 31 */ { 4, s_7_31, -1, 1, 0}, +/* 32 */ { 4, s_7_32, -1, 1, 0}, +/* 33 */ { 4, s_7_33, -1, 1, 0}, +/* 34 */ { 3, s_7_34, -1, 1, 0}, +/* 35 */ { 3, s_7_35, -1, 1, 0}, +/* 36 */ { 6, s_7_36, -1, 1, 0}, +/* 37 */ { 6, s_7_37, -1, 1, 0}, +/* 38 */ { 3, s_7_38, -1, 1, 0}, +/* 39 */ { 3, s_7_39, -1, 1, 0}, +/* 40 */ { 3, s_7_40, -1, 1, 0}, +/* 41 */ { 3, s_7_41, -1, 1, 0}, +/* 42 */ { 4, s_7_42, -1, 1, 0}, +/* 43 */ { 4, s_7_43, -1, 1, 0}, +/* 44 */ { 4, s_7_44, -1, 1, 0}, +/* 45 */ { 4, s_7_45, -1, 1, 0}, +/* 46 */ { 4, s_7_46, -1, 1, 0}, +/* 47 */ { 5, s_7_47, -1, 1, 0}, +/* 48 */ { 5, s_7_48, -1, 1, 0}, +/* 49 */ { 5, s_7_49, -1, 1, 0}, +/* 50 */ { 5, s_7_50, -1, 1, 0}, +/* 51 */ { 5, s_7_51, -1, 1, 0}, +/* 52 */ { 6, s_7_52, -1, 1, 0}, +/* 53 */ { 4, s_7_53, -1, 1, 0}, +/* 54 */ { 4, s_7_54, -1, 1, 0}, +/* 55 */ { 6, s_7_55, 54, 1, 0}, +/* 56 */ { 6, s_7_56, 54, 1, 0}, +/* 57 */ { 4, s_7_57, -1, 1, 0}, +/* 58 */ { 3, s_7_58, -1, 1, 0}, +/* 59 */ { 6, s_7_59, 58, 1, 0}, +/* 60 */ { 5, s_7_60, 58, 1, 0}, +/* 61 */ { 5, s_7_61, 58, 1, 0}, +/* 62 */ { 5, s_7_62, 58, 1, 0}, +/* 63 */ { 6, s_7_63, -1, 1, 0}, +/* 64 */ { 6, s_7_64, -1, 1, 0}, +/* 65 */ { 3, s_7_65, -1, 1, 0}, +/* 66 */ { 6, s_7_66, 65, 1, 0}, +/* 67 */ { 5, s_7_67, 65, 1, 0}, +/* 68 */ { 5, s_7_68, 65, 1, 0}, +/* 69 */ { 5, s_7_69, 65, 1, 0}, +/* 70 */ { 8, s_7_70, -1, 1, 0}, +/* 71 */ { 8, s_7_71, -1, 1, 0}, +/* 72 */ { 6, s_7_72, -1, 1, 0}, +/* 73 */ { 6, s_7_73, -1, 1, 0}, +/* 74 */ { 6, s_7_74, -1, 1, 0}, +/* 75 */ { 3, s_7_75, -1, 1, 0}, +/* 76 */ { 3, s_7_76, -1, 1, 0}, +/* 77 */ { 3, s_7_77, -1, 1, 0}, +/* 78 */ { 3, s_7_78, -1, 1, 0}, +/* 79 */ { 3, s_7_79, -1, 1, 0}, +/* 80 */ { 3, s_7_80, -1, 1, 0}, +/* 81 */ { 2, s_7_81, -1, 1, 0}, +/* 82 */ { 2, s_7_82, -1, 1, 0}, +/* 83 */ { 4, s_7_83, -1, 1, 0}, +/* 84 */ { 4, s_7_84, -1, 1, 0}, +/* 85 */ { 4, s_7_85, -1, 1, 0}, +/* 86 */ { 4, s_7_86, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 }; + +static const unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 }; + +static const unsigned char g_CG[] = { 17 }; + +static const symbol s_0[] = { 0xC3, 0xA0 }; +static const symbol s_1[] = { 0xC3, 0xA8 }; +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[] = { 'I' }; +static const symbol s_8[] = { 'i' }; +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) { /* forwardmode */ + int among_var; + { int c_test1 = z->c; /* test, line 35 */ + while(1) { /* repeat, line 35 */ + 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) { /* among, line 36 */ + case 1: + { int ret = slice_from_s(z, 2, s_0); /* <-, line 37 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 2, s_1); /* <-, line 38 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 2, s_2); /* <-, line 39 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 2, s_3); /* <-, line 40 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 2, s_4); /* <-, line 41 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_from_s(z, 2, s_5); /* <-, line 42 */ + if (ret < 0) return ret; + } + break; + case 7: + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 43 */ + } + break; + } + continue; + lab0: + z->c = c2; + break; + } + z->c = c_test1; + } + while(1) { /* repeat, line 46 */ + int c3 = z->c; + while(1) { /* goto, line 46 */ + 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 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; /* 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 = 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; /* grouping v, line 48 */ + { int ret = slice_from_s(z, 1, s_7); /* <-, line 48 */ + if (ret < 0) return ret; + } + } + lab3: + z->c = c4; + break; + lab2: + 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 */ + } + } + continue; + lab1: + z->c = c3; + break; + } + return 1; +} + +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; /* grouping v, line 59 */ + { int c3 = z->c; /* or, line 59 */ + 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; + z->c += ret; + } + goto lab3; + lab4: + z->c = c3; + 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; + z->c += ret; + } + } + lab3: + goto lab1; + lab2: + z->c = c2; + 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; /* 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; + z->c += ret; + } + goto lab5; + lab6: + z->c = c4; + 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 */ + } + } + lab5: + ; + } + lab1: + z->I[0] = z->c; /* setmark pV, line 62 */ + lab0: + z->c = c1; + } + { int c5 = z->c; /* do, line 64 */ + { /* gopast */ /* grouping v, line 65 */ + int ret = out_grouping_U(z, g_v, 97, 249, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 65 */ + int ret = in_grouping_U(z, g_v, 97, 249, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[1] = z->c; /* setmark p1, line 65 */ + { /* gopast */ /* grouping v, line 66 */ + int ret = out_grouping_U(z, g_v, 97, 249, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 66 */ + int ret = in_grouping_U(z, g_v, 97, 249, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[2] = z->c; /* setmark p2, line 66 */ + lab7: + z->c = c5; + } + return 1; +} + +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 /* 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) { /* among, line 72 */ + case 1: + { 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_9); /* <-, line 74 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 75 */ + } + break; + } + continue; + lab0: + z->c = c1; + 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 82 */ + return 1; +} + +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) { /* 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) { /* 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; /* 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, line 97 */ + among_var = find_among_b(z, a_3, 5); + if (!(among_var)) return 0; + { int ret = r_RV(z); /* call RV, line 97 */ + if (ret <= 0) return ret; + } + 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_10); /* <-, line 99 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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) { /* among, line 104 */ + case 1: + { 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); /* call R2, line 113 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 113 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* try, line 114 */ + z->ket = z->c; /* [, line 114 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + lab0: + ; + } + break; + case 3: + { int ret = r_R2(z); /* call R2, line 117 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_12); /* <-, line 117 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = r_R2(z); /* call R2, line 119 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 1, s_13); /* <-, line 119 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = r_R2(z); /* call R2, line 121 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 4, s_14); /* <-, line 121 */ + if (ret < 0) return ret; + } + break; + case 6: + { 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); /* call R1, line 125 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 125 */ + if (ret < 0) return ret; + } + { 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 - 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); /* 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) { /* among, line 127 */ + case 1: + z->ket = z->c; /* [, line 128 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + break; + } + lab1: + ; + } + break; + case 8: + { 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 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 - 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 */ + { 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); /* call R2, line 142 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 142 */ + if (ret < 0) return ret; + } + { int m4 = z->l - z->c; (void)m4; /* try, line 143 */ + z->ket = z->c; /* [, line 143 */ + 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); /* 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_17))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */ + z->bra = z->c; /* ], 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; + } + lab3: + ; + } + break; + } + return 1; +} + +static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 148 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 149 */ + if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; } /* substring, line 149 */ + z->bra = z->c; /* ], line 149 */ + { int ret = slice_del(z); /* delete, line 163 */ + if (ret < 0) return ret; + } + z->lb = mlimit1; + } + return 1; +} + +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 - m1; goto lab0; } /* grouping AEIO, line 172 */ + z->bra = z->c; /* ], 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 (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); /* 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 */ + if (ret < 0) return ret; + } + lab0: + ; + } + { int m2 = z->l - z->c; (void)m2; /* try, line 175 */ + z->ket = z->c; /* [, line 176 */ + 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 - 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 */ + if (ret < 0) return ret; + } + lab1: + ; + } + return 1; +} + +extern int italian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, 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; + } + /* 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 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 - m2; + } + { 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 - 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 - m3; + } + { 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 - m5; + } + z->c = z->lb; + { 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 = c6; + } + return 1; +} + +extern struct SN_env * italian_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } + +extern void italian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c b/src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c new file mode 100644 index 0000000..dbf27e6 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c @@ -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); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c b/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c new file mode 100644 index 0000000..d1c1be7 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c @@ -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); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c b/src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c new file mode 100644 index 0000000..62d221b --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c @@ -0,0 +1,285 @@ +/* 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 norwegian_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_other_suffix(struct SN_env * z); +static int r_consonant_pair(struct SN_env * z); +static int r_main_suffix(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * norwegian_UTF_8_create_env(void); +extern void norwegian_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[1] = { 'e' }; +static const symbol s_0_2[3] = { 'e', 'd', 'e' }; +static const symbol s_0_3[4] = { 'a', 'n', 'd', 'e' }; +static const symbol s_0_4[4] = { 'e', 'n', 'd', 'e' }; +static const symbol s_0_5[3] = { 'a', 'n', 'e' }; +static const symbol s_0_6[3] = { 'e', 'n', 'e' }; +static const symbol s_0_7[6] = { 'h', 'e', 't', 'e', 'n', 'e' }; +static const symbol s_0_8[4] = { 'e', 'r', 't', 'e' }; +static const symbol s_0_9[2] = { 'e', 'n' }; +static const symbol s_0_10[5] = { 'h', 'e', 't', 'e', 'n' }; +static const symbol s_0_11[2] = { 'a', 'r' }; +static const symbol s_0_12[2] = { 'e', 'r' }; +static const symbol s_0_13[5] = { 'h', 'e', 't', 'e', 'r' }; +static const symbol s_0_14[1] = { 's' }; +static const symbol s_0_15[2] = { 'a', 's' }; +static const symbol s_0_16[2] = { 'e', 's' }; +static const symbol s_0_17[4] = { 'e', 'd', 'e', 's' }; +static const symbol s_0_18[5] = { 'e', 'n', 'd', 'e', 's' }; +static const symbol s_0_19[4] = { 'e', 'n', 'e', 's' }; +static const symbol s_0_20[7] = { 'h', 'e', 't', 'e', 'n', 'e', 's' }; +static const symbol s_0_21[3] = { 'e', 'n', 's' }; +static const symbol s_0_22[6] = { 'h', 'e', 't', 'e', 'n', 's' }; +static const symbol s_0_23[3] = { 'e', 'r', 's' }; +static const symbol s_0_24[3] = { 'e', 't', 's' }; +static const symbol s_0_25[2] = { 'e', 't' }; +static const symbol s_0_26[3] = { 'h', 'e', 't' }; +static const symbol s_0_27[3] = { 'e', 'r', 't' }; +static const symbol s_0_28[3] = { 'a', 's', 't' }; + +static const struct among a_0[29] = +{ +/* 0 */ { 1, s_0_0, -1, 1, 0}, +/* 1 */ { 1, s_0_1, -1, 1, 0}, +/* 2 */ { 3, s_0_2, 1, 1, 0}, +/* 3 */ { 4, s_0_3, 1, 1, 0}, +/* 4 */ { 4, s_0_4, 1, 1, 0}, +/* 5 */ { 3, s_0_5, 1, 1, 0}, +/* 6 */ { 3, s_0_6, 1, 1, 0}, +/* 7 */ { 6, s_0_7, 6, 1, 0}, +/* 8 */ { 4, s_0_8, 1, 3, 0}, +/* 9 */ { 2, s_0_9, -1, 1, 0}, +/* 10 */ { 5, s_0_10, 9, 1, 0}, +/* 11 */ { 2, s_0_11, -1, 1, 0}, +/* 12 */ { 2, s_0_12, -1, 1, 0}, +/* 13 */ { 5, s_0_13, 12, 1, 0}, +/* 14 */ { 1, s_0_14, -1, 2, 0}, +/* 15 */ { 2, s_0_15, 14, 1, 0}, +/* 16 */ { 2, s_0_16, 14, 1, 0}, +/* 17 */ { 4, s_0_17, 16, 1, 0}, +/* 18 */ { 5, s_0_18, 16, 1, 0}, +/* 19 */ { 4, s_0_19, 16, 1, 0}, +/* 20 */ { 7, s_0_20, 19, 1, 0}, +/* 21 */ { 3, s_0_21, 14, 1, 0}, +/* 22 */ { 6, s_0_22, 21, 1, 0}, +/* 23 */ { 3, s_0_23, 14, 1, 0}, +/* 24 */ { 3, s_0_24, 14, 1, 0}, +/* 25 */ { 2, s_0_25, -1, 1, 0}, +/* 26 */ { 3, s_0_26, 25, 1, 0}, +/* 27 */ { 3, s_0_27, -1, 3, 0}, +/* 28 */ { 3, s_0_28, -1, 1, 0} +}; + +static const symbol s_1_0[2] = { 'd', 't' }; +static const symbol s_1_1[2] = { 'v', 't' }; + +static const struct among a_1[2] = +{ +/* 0 */ { 2, s_1_0, -1, -1, 0}, +/* 1 */ { 2, s_1_1, -1, -1, 0} +}; + +static const symbol s_2_0[3] = { 'l', 'e', 'g' }; +static const symbol s_2_1[4] = { 'e', 'l', 'e', 'g' }; +static const symbol s_2_2[2] = { 'i', 'g' }; +static const symbol s_2_3[3] = { 'e', 'i', 'g' }; +static const symbol s_2_4[3] = { 'l', 'i', 'g' }; +static const symbol s_2_5[4] = { 'e', 'l', 'i', 'g' }; +static const symbol s_2_6[3] = { 'e', 'l', 's' }; +static const symbol s_2_7[3] = { 'l', 'o', 'v' }; +static const symbol s_2_8[4] = { 'e', 'l', 'o', 'v' }; +static const symbol s_2_9[4] = { 's', 'l', 'o', 'v' }; +static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' }; + +static const struct among a_2[11] = +{ +/* 0 */ { 3, s_2_0, -1, 1, 0}, +/* 1 */ { 4, s_2_1, 0, 1, 0}, +/* 2 */ { 2, s_2_2, -1, 1, 0}, +/* 3 */ { 3, s_2_3, 2, 1, 0}, +/* 4 */ { 3, s_2_4, 2, 1, 0}, +/* 5 */ { 4, s_2_5, 4, 1, 0}, +/* 6 */ { 3, s_2_6, -1, 1, 0}, +/* 7 */ { 3, s_2_7, -1, 1, 0}, +/* 8 */ { 4, s_2_8, 7, 1, 0}, +/* 9 */ { 4, s_2_9, 7, 1, 0}, +/* 10 */ { 7, s_2_10, 9, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 }; + +static const unsigned char g_s_ending[] = { 119, 125, 149, 1 }; + +static const symbol s_0[] = { 'e', 'r' }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */ + { int c_test1 = z->c; /* test, line 30 */ + { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 30 */ + if (ret < 0) return 0; + z->c = ret; + } + z->I[1] = z->c; /* setmark x, line 30 */ + 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 */ + int ret = in_grouping_U(z, g_v, 97, 248, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 31 */ + /* try, line 32 */ + if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 32 */ + z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 32 */ +lab0: + return 1; +} + +static int r_main_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 38 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 38 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 38 */ + 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 = mlimit1; + } + switch (among_var) { /* among, line 39 */ + case 1: + { int ret = slice_del(z); /* delete, line 44 */ + if (ret < 0) return ret; + } + break; + case 2: + { int m2 = z->l - z->c; (void)m2; /* or, line 46 */ + if (in_grouping_b_U(z, g_s_ending, 98, 122, 0)) goto lab1; /* grouping s_ending, line 46 */ + goto lab0; + lab1: + z->c = z->l - m2; + 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 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 2, s_0); /* <-, line 48 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; + mlimit2 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 54 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } /* substring, line 54 */ + if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; } + z->bra = z->c; /* ], line 54 */ + z->lb = mlimit2; + } + z->c = z->l - m_test1; + } + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 59 */ + } + z->bra = z->c; /* ], line 59 */ + { int ret = slice_del(z); /* delete, line 59 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_other_suffix(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 63 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 63 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 63 */ + if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 63 */ + z->lb = mlimit1; + } + { 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) { /* forwardmode */ + { int c1 = z->c; /* do, line 74 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 74 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + 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); /* 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); /* 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); /* call other_suffix, line 78 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + lab3: + z->c = z->l - m4; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * norwegian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); } + +extern void norwegian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_porter.c b/src/backend/snowball/libstemmer/stem_UTF_8_porter.c new file mode 100644 index 0000000..bb83a74 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_porter.c @@ -0,0 +1,740 @@ +/* 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 porter_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_Step_5b(struct SN_env * z); +static int r_Step_5a(struct SN_env * z); +static int r_Step_4(struct SN_env * z); +static int r_Step_3(struct SN_env * z); +static int r_Step_2(struct SN_env * z); +static int r_Step_1c(struct SN_env * z); +static int r_Step_1b(struct SN_env * z); +static int r_Step_1a(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_shortv(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * porter_UTF_8_create_env(void); +extern void porter_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[1] = { 's' }; +static const symbol s_0_1[3] = { 'i', 'e', 's' }; +static const symbol s_0_2[4] = { 's', 's', 'e', 's' }; +static const symbol s_0_3[2] = { 's', 's' }; + +static const struct among a_0[4] = +{ +/* 0 */ { 1, s_0_0, -1, 3, 0}, +/* 1 */ { 3, s_0_1, 0, 2, 0}, +/* 2 */ { 4, s_0_2, 0, 1, 0}, +/* 3 */ { 2, s_0_3, 0, -1, 0} +}; + +static const symbol s_1_1[2] = { 'b', 'b' }; +static const symbol s_1_2[2] = { 'd', 'd' }; +static const symbol s_1_3[2] = { 'f', 'f' }; +static const symbol s_1_4[2] = { 'g', 'g' }; +static const symbol s_1_5[2] = { 'b', 'l' }; +static const symbol s_1_6[2] = { 'm', 'm' }; +static const symbol s_1_7[2] = { 'n', 'n' }; +static const symbol s_1_8[2] = { 'p', 'p' }; +static const symbol s_1_9[2] = { 'r', 'r' }; +static const symbol s_1_10[2] = { 'a', 't' }; +static const symbol s_1_11[2] = { 't', 't' }; +static const symbol s_1_12[2] = { 'i', 'z' }; + +static const struct among a_1[13] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 2, s_1_1, 0, 2, 0}, +/* 2 */ { 2, s_1_2, 0, 2, 0}, +/* 3 */ { 2, s_1_3, 0, 2, 0}, +/* 4 */ { 2, s_1_4, 0, 2, 0}, +/* 5 */ { 2, s_1_5, 0, 1, 0}, +/* 6 */ { 2, s_1_6, 0, 2, 0}, +/* 7 */ { 2, s_1_7, 0, 2, 0}, +/* 8 */ { 2, s_1_8, 0, 2, 0}, +/* 9 */ { 2, s_1_9, 0, 2, 0}, +/* 10 */ { 2, s_1_10, 0, 1, 0}, +/* 11 */ { 2, s_1_11, 0, 2, 0}, +/* 12 */ { 2, s_1_12, 0, 1, 0} +}; + +static const symbol s_2_0[2] = { 'e', 'd' }; +static const symbol s_2_1[3] = { 'e', 'e', 'd' }; +static const symbol s_2_2[3] = { 'i', 'n', 'g' }; + +static const struct among a_2[3] = +{ +/* 0 */ { 2, s_2_0, -1, 2, 0}, +/* 1 */ { 3, s_2_1, 0, 1, 0}, +/* 2 */ { 3, s_2_2, -1, 2, 0} +}; + +static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' }; +static const symbol s_3_1[4] = { 'e', 'n', 'c', 'i' }; +static const symbol s_3_2[4] = { 'a', 'b', 'l', 'i' }; +static const symbol s_3_3[3] = { 'e', 'l', 'i' }; +static const symbol s_3_4[4] = { 'a', 'l', 'l', 'i' }; +static const symbol s_3_5[5] = { 'o', 'u', 's', 'l', 'i' }; +static const symbol s_3_6[5] = { 'e', 'n', 't', 'l', 'i' }; +static const symbol s_3_7[5] = { 'a', 'l', 'i', 't', 'i' }; +static const symbol s_3_8[6] = { 'b', 'i', 'l', 'i', 't', 'i' }; +static const symbol s_3_9[5] = { 'i', 'v', 'i', 't', 'i' }; +static const symbol s_3_10[6] = { 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_3_11[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' }; +static const symbol s_3_12[5] = { 'a', 'l', 'i', 's', 'm' }; +static const symbol s_3_13[5] = { 'a', 't', 'i', 'o', 'n' }; +static const symbol s_3_14[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' }; +static const symbol s_3_15[4] = { 'i', 'z', 'e', 'r' }; +static const symbol s_3_16[4] = { 'a', 't', 'o', 'r' }; +static const symbol s_3_17[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' }; +static const symbol s_3_18[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' }; +static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' }; + +static const struct among a_3[20] = +{ +/* 0 */ { 4, s_3_0, -1, 3, 0}, +/* 1 */ { 4, s_3_1, -1, 2, 0}, +/* 2 */ { 4, s_3_2, -1, 4, 0}, +/* 3 */ { 3, s_3_3, -1, 6, 0}, +/* 4 */ { 4, s_3_4, -1, 9, 0}, +/* 5 */ { 5, s_3_5, -1, 11, 0}, +/* 6 */ { 5, s_3_6, -1, 5, 0}, +/* 7 */ { 5, s_3_7, -1, 9, 0}, +/* 8 */ { 6, s_3_8, -1, 13, 0}, +/* 9 */ { 5, s_3_9, -1, 12, 0}, +/* 10 */ { 6, s_3_10, -1, 1, 0}, +/* 11 */ { 7, s_3_11, 10, 8, 0}, +/* 12 */ { 5, s_3_12, -1, 9, 0}, +/* 13 */ { 5, s_3_13, -1, 8, 0}, +/* 14 */ { 7, s_3_14, 13, 7, 0}, +/* 15 */ { 4, s_3_15, -1, 7, 0}, +/* 16 */ { 4, s_3_16, -1, 8, 0}, +/* 17 */ { 7, s_3_17, -1, 12, 0}, +/* 18 */ { 7, s_3_18, -1, 10, 0}, +/* 19 */ { 7, s_3_19, -1, 11, 0} +}; + +static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' }; +static const symbol s_4_1[5] = { 'a', 't', 'i', 'v', 'e' }; +static const symbol s_4_2[5] = { 'a', 'l', 'i', 'z', 'e' }; +static const symbol s_4_3[5] = { 'i', 'c', 'i', 't', 'i' }; +static const symbol s_4_4[4] = { 'i', 'c', 'a', 'l' }; +static const symbol s_4_5[3] = { 'f', 'u', 'l' }; +static const symbol s_4_6[4] = { 'n', 'e', 's', 's' }; + +static const struct among a_4[7] = +{ +/* 0 */ { 5, s_4_0, -1, 2, 0}, +/* 1 */ { 5, s_4_1, -1, 3, 0}, +/* 2 */ { 5, s_4_2, -1, 1, 0}, +/* 3 */ { 5, s_4_3, -1, 2, 0}, +/* 4 */ { 4, s_4_4, -1, 2, 0}, +/* 5 */ { 3, s_4_5, -1, 3, 0}, +/* 6 */ { 4, s_4_6, -1, 3, 0} +}; + +static const symbol s_5_0[2] = { 'i', 'c' }; +static const symbol s_5_1[4] = { 'a', 'n', 'c', 'e' }; +static const symbol s_5_2[4] = { 'e', 'n', 'c', 'e' }; +static const symbol s_5_3[4] = { 'a', 'b', 'l', 'e' }; +static const symbol s_5_4[4] = { 'i', 'b', 'l', 'e' }; +static const symbol s_5_5[3] = { 'a', 't', 'e' }; +static const symbol s_5_6[3] = { 'i', 'v', 'e' }; +static const symbol s_5_7[3] = { 'i', 'z', 'e' }; +static const symbol s_5_8[3] = { 'i', 't', 'i' }; +static const symbol s_5_9[2] = { 'a', 'l' }; +static const symbol s_5_10[3] = { 'i', 's', 'm' }; +static const symbol s_5_11[3] = { 'i', 'o', 'n' }; +static const symbol s_5_12[2] = { 'e', 'r' }; +static const symbol s_5_13[3] = { 'o', 'u', 's' }; +static const symbol s_5_14[3] = { 'a', 'n', 't' }; +static const symbol s_5_15[3] = { 'e', 'n', 't' }; +static const symbol s_5_16[4] = { 'm', 'e', 'n', 't' }; +static const symbol s_5_17[5] = { 'e', 'm', 'e', 'n', 't' }; +static const symbol s_5_18[2] = { 'o', 'u' }; + +static const struct among a_5[19] = +{ +/* 0 */ { 2, s_5_0, -1, 1, 0}, +/* 1 */ { 4, s_5_1, -1, 1, 0}, +/* 2 */ { 4, s_5_2, -1, 1, 0}, +/* 3 */ { 4, s_5_3, -1, 1, 0}, +/* 4 */ { 4, s_5_4, -1, 1, 0}, +/* 5 */ { 3, s_5_5, -1, 1, 0}, +/* 6 */ { 3, s_5_6, -1, 1, 0}, +/* 7 */ { 3, s_5_7, -1, 1, 0}, +/* 8 */ { 3, s_5_8, -1, 1, 0}, +/* 9 */ { 2, s_5_9, -1, 1, 0}, +/* 10 */ { 3, s_5_10, -1, 1, 0}, +/* 11 */ { 3, s_5_11, -1, 2, 0}, +/* 12 */ { 2, s_5_12, -1, 1, 0}, +/* 13 */ { 3, s_5_13, -1, 1, 0}, +/* 14 */ { 3, s_5_14, -1, 1, 0}, +/* 15 */ { 3, s_5_15, -1, 1, 0}, +/* 16 */ { 4, s_5_16, 15, 1, 0}, +/* 17 */ { 5, s_5_17, 16, 1, 0}, +/* 18 */ { 2, s_5_18, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1 }; + +static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 }; + +static const symbol s_0[] = { 's', 's' }; +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[] = { '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) { /* 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) { /* 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) { /* 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) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 25 */ + if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; /* substring, line 25 */ + among_var = find_among_b(z, a_0, 4); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 25 */ + switch (among_var) { /* among, line 25 */ + case 1: + { int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_1); /* <-, line 27 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 29 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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) { /* among, line 34 */ + case 1: + { 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_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_test1; + } + { int ret = slice_del(z); /* delete, line 38 */ + if (ret < 0) return ret; + } + { int m_test2 = z->l - z->c; /* test, line 39 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 39 */ + among_var = find_among_b(z, a_1, 13); + if (!(among_var)) return 0; + z->c = z->l - m_test2; + } + switch (among_var) { /* among, line 39 */ + case 1: + { 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; + case 2: + z->ket = z->c; /* [, line 44 */ + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 44 */ + } + z->bra = z->c; /* ], line 44 */ + { int ret = slice_del(z); /* delete, line 44 */ + if (ret < 0) return ret; + } + break; + case 3: + if (z->c != z->I[0]) return 0; /* atmark, line 45 */ + { int m_test3 = z->l - z->c; /* test, line 45 */ + { int ret = r_shortv(z); /* call shortv, line 45 */ + if (ret <= 0) return ret; + } + z->c = z->l - m_test3; + } + { int ret; + { int saved_c = z->c; + ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + break; + } + break; + } + return 1; +} + +static int r_Step_1c(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 52 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 52 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 52 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 52 */ + z->c--; + } +lab0: + z->bra = z->c; /* ], line 52 */ + { /* gopast */ /* grouping v, line 53 */ + int ret = out_grouping_b_U(z, g_v, 97, 121, 1); + if (ret < 0) return 0; + z->c -= ret; + } + { int ret = slice_from_s(z, 1, s_5); /* <-, line 54 */ + if (ret < 0) return ret; + } + return 1; +} + +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; /* 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); /* call R1, line 58 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 58 */ + case 1: + { 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_7); /* <-, line 60 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_9); /* <-, line 62 */ + if (ret < 0) return ret; + } + break; + case 5: + { 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_11); /* <-, line 64 */ + if (ret < 0) return ret; + } + break; + case 7: + { 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_13); /* <-, line 68 */ + if (ret < 0) return ret; + } + break; + case 9: + { 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, 3, s_15); /* <-, line 72 */ + if (ret < 0) return ret; + } + break; + case 11: + { 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_17); /* <-, line 76 */ + if (ret < 0) return ret; + } + break; + case 13: + { int ret = slice_from_s(z, 3, s_18); /* <-, line 77 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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); /* call R1, line 82 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 82 */ + case 1: + { 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_20); /* <-, line 85 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_del(z); /* delete, line 87 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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; /* 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); /* call R2, line 92 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 92 */ + case 1: + { int ret = slice_del(z); /* delete, line 95 */ + if (ret < 0) return ret; + } + break; + case 2: + { int m1 = z->l - z->c; (void)m1; /* or, line 96 */ + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 96 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m1; + if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 96 */ + z->c--; + } + lab0: + { int ret = slice_del(z); /* delete, line 96 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Step_5a(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 101 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 101 */ + z->c--; + z->bra = z->c; /* ], line 101 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 102 */ + { int ret = r_R2(z); /* call R2, line 102 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + { int ret = r_R1(z); /* call R1, line 102 */ + if (ret <= 0) return ret; + } + { int m2 = z->l - z->c; (void)m2; /* not, line 102 */ + { int ret = r_shortv(z); /* call shortv, line 102 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + return 0; + lab2: + z->c = z->l - m2; + } + } +lab0: + { int ret = slice_del(z); /* delete, line 103 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_Step_5b(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 107 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 107 */ + z->c--; + z->bra = z->c; /* ], line 107 */ + { int ret = r_R2(z); /* call R2, line 108 */ + if (ret <= 0) return ret; + } + 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) { /* forwardmode */ + z->B[0] = 0; /* unset Y_found, line 115 */ + { int c1 = z->c; /* do, line 116 */ + z->bra = z->c; /* [, line 116 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab0; /* literal, line 116 */ + z->c++; + z->ket = z->c; /* ], 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 */ + lab0: + z->c = c1; + } + { int c2 = z->c; /* do, line 117 */ + while(1) { /* repeat, line 117 */ + 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; /* grouping v, line 117 */ + z->bra = z->c; /* [, line 117 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 117 */ + z->c++; + z->ket = z->c; /* ], line 117 */ + z->c = c4; + break; + lab3: + z->c = c4; + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab2; + z->c = ret; /* goto, 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 */ + continue; + lab2: + z->c = c3; + break; + } + z->c = c2; + } + z->I[0] = z->l; /* $p1 = <integer expression>, line 119 */ + z->I[1] = z->l; /* $p2 = <integer expression>, line 120 */ + { int c5 = z->c; /* do, line 121 */ + { /* gopast */ /* grouping v, line 122 */ + int ret = out_grouping_U(z, g_v, 97, 121, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + { /* gopast */ /* non v, line 122 */ + int ret = in_grouping_U(z, g_v, 97, 121, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 122 */ + { /* gopast */ /* grouping v, line 123 */ + int ret = out_grouping_U(z, g_v, 97, 121, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + { /* gopast */ /* non v, line 123 */ + int ret = in_grouping_U(z, g_v, 97, 121, 1); + if (ret < 0) goto lab4; + z->c += ret; + } + z->I[1] = z->c; /* setmark p2, line 123 */ + lab4: + z->c = c5; + } + 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); /* 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); /* 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); /* 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); /* 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); /* 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); /* 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); /* 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); /* call Step_5b, line 134 */ + if (ret == 0) goto lab12; + if (ret < 0) return ret; + } + lab12: + z->c = z->l - m13; + } + z->c = z->lb; + { int c14 = z->c; /* do, line 137 */ + if (!(z->B[0])) goto lab13; /* Boolean test Y_found, line 137 */ + while(1) { /* repeat, line 137 */ + int c15 = z->c; + while(1) { /* goto, line 137 */ + int c16 = z->c; + z->bra = z->c; /* [, line 137 */ + 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; + lab15: + z->c = c16; + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab14; + z->c = ret; /* goto, line 137 */ + } + } + { int ret = slice_from_s(z, 1, s_23); /* <-, line 137 */ + if (ret < 0) return ret; + } + continue; + lab14: + z->c = c15; + break; + } + lab13: + z->c = c14; + } + return 1; +} + +extern struct SN_env * porter_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); } + +extern void porter_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c b/src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c new file mode 100644 index 0000000..f5f2e0f --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c @@ -0,0 +1,976 @@ +/* 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 portuguese_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_residual_form(struct SN_env * z); +static int r_residual_suffix(struct SN_env * z); +static int r_verb_suffix(struct SN_env * z); +static int r_standard_suffix(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * portuguese_UTF_8_create_env(void); +extern void portuguese_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[2] = { 0xC3, 0xA3 }; +static const symbol s_0_2[2] = { 0xC3, 0xB5 }; + +static const struct among a_0[3] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 2, s_0_1, 0, 1, 0}, +/* 2 */ { 2, s_0_2, 0, 2, 0} +}; + +static const symbol s_1_1[2] = { 'a', '~' }; +static const symbol s_1_2[2] = { 'o', '~' }; + +static const struct among a_1[3] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 2, s_1_1, 0, 1, 0}, +/* 2 */ { 2, s_1_2, 0, 2, 0} +}; + +static const symbol s_2_0[2] = { 'i', 'c' }; +static const symbol s_2_1[2] = { 'a', 'd' }; +static const symbol s_2_2[2] = { 'o', 's' }; +static const symbol s_2_3[2] = { 'i', 'v' }; + +static const struct among a_2[4] = +{ +/* 0 */ { 2, s_2_0, -1, -1, 0}, +/* 1 */ { 2, s_2_1, -1, -1, 0}, +/* 2 */ { 2, s_2_2, -1, -1, 0}, +/* 3 */ { 2, s_2_3, -1, 1, 0} +}; + +static const symbol s_3_0[4] = { 'a', 'n', 't', 'e' }; +static const symbol s_3_1[4] = { 'a', 'v', 'e', 'l' }; +static const symbol s_3_2[5] = { 0xC3, 0xAD, 'v', 'e', 'l' }; + +static const struct among a_3[3] = +{ +/* 0 */ { 4, s_3_0, -1, 1, 0}, +/* 1 */ { 4, s_3_1, -1, 1, 0}, +/* 2 */ { 5, s_3_2, -1, 1, 0} +}; + +static const symbol s_4_0[2] = { 'i', 'c' }; +static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_4_2[2] = { 'i', 'v' }; + +static const struct among a_4[3] = +{ +/* 0 */ { 2, s_4_0, -1, 1, 0}, +/* 1 */ { 4, s_4_1, -1, 1, 0}, +/* 2 */ { 2, s_4_2, -1, 1, 0} +}; + +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[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[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[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[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' }; +static const symbol s_5_42[7] = { 'a', 'm', 'e', 'n', 't', 'o', 's' }; +static const symbol s_5_43[7] = { 'i', 'm', 'e', 'n', 't', 'o', 's' }; +static const symbol s_5_44[4] = { 'i', 'v', 'o', 's' }; + +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 */ { 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 */ { 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 */ { 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 */ { 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 */ { 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}, +/* 42 */ { 7, s_5_42, -1, 1, 0}, +/* 43 */ { 7, s_5_43, -1, 1, 0}, +/* 44 */ { 4, s_5_44, -1, 8, 0} +}; + +static const symbol s_6_0[3] = { 'a', 'd', 'a' }; +static const symbol s_6_1[3] = { 'i', 'd', 'a' }; +static const symbol s_6_2[2] = { 'i', 'a' }; +static const symbol s_6_3[4] = { 'a', 'r', 'i', 'a' }; +static const symbol s_6_4[4] = { 'e', 'r', 'i', 'a' }; +static const symbol s_6_5[4] = { 'i', 'r', 'i', 'a' }; +static const symbol s_6_6[3] = { 'a', 'r', 'a' }; +static const symbol s_6_7[3] = { 'e', 'r', 'a' }; +static const symbol s_6_8[3] = { 'i', 'r', 'a' }; +static const symbol s_6_9[3] = { 'a', 'v', 'a' }; +static const symbol s_6_10[4] = { 'a', 's', 's', 'e' }; +static const symbol s_6_11[4] = { 'e', 's', 's', 'e' }; +static const symbol s_6_12[4] = { 'i', 's', 's', 'e' }; +static const symbol s_6_13[4] = { 'a', 's', 't', 'e' }; +static const symbol s_6_14[4] = { 'e', 's', 't', 'e' }; +static const symbol s_6_15[4] = { 'i', 's', 't', 'e' }; +static const symbol s_6_16[2] = { 'e', 'i' }; +static const symbol s_6_17[4] = { 'a', 'r', 'e', 'i' }; +static const symbol s_6_18[4] = { 'e', 'r', 'e', 'i' }; +static const symbol s_6_19[4] = { 'i', 'r', 'e', 'i' }; +static const symbol s_6_20[2] = { 'a', 'm' }; +static const symbol s_6_21[3] = { 'i', 'a', 'm' }; +static const symbol s_6_22[5] = { 'a', 'r', 'i', 'a', 'm' }; +static const symbol s_6_23[5] = { 'e', 'r', 'i', 'a', 'm' }; +static const symbol s_6_24[5] = { 'i', 'r', 'i', 'a', 'm' }; +static const symbol s_6_25[4] = { 'a', 'r', 'a', 'm' }; +static const symbol s_6_26[4] = { 'e', 'r', 'a', 'm' }; +static const symbol s_6_27[4] = { 'i', 'r', 'a', 'm' }; +static const symbol s_6_28[4] = { 'a', 'v', 'a', 'm' }; +static const symbol s_6_29[2] = { 'e', 'm' }; +static const symbol s_6_30[4] = { 'a', 'r', 'e', 'm' }; +static const symbol s_6_31[4] = { 'e', 'r', 'e', 'm' }; +static const symbol s_6_32[4] = { 'i', 'r', 'e', 'm' }; +static const symbol s_6_33[5] = { 'a', 's', 's', 'e', 'm' }; +static const symbol s_6_34[5] = { 'e', 's', 's', 'e', 'm' }; +static const symbol s_6_35[5] = { 'i', 's', 's', 'e', 'm' }; +static const symbol s_6_36[3] = { 'a', 'd', 'o' }; +static const symbol s_6_37[3] = { 'i', 'd', 'o' }; +static const symbol s_6_38[4] = { 'a', 'n', 'd', 'o' }; +static const symbol s_6_39[4] = { 'e', 'n', 'd', 'o' }; +static const symbol s_6_40[4] = { 'i', 'n', 'd', 'o' }; +static const symbol s_6_41[5] = { 'a', 'r', 'a', '~', 'o' }; +static const symbol s_6_42[5] = { 'e', 'r', 'a', '~', 'o' }; +static const symbol s_6_43[5] = { 'i', 'r', 'a', '~', 'o' }; +static const symbol s_6_44[2] = { 'a', 'r' }; +static const symbol s_6_45[2] = { 'e', 'r' }; +static const symbol s_6_46[2] = { 'i', 'r' }; +static const symbol s_6_47[2] = { 'a', 's' }; +static const symbol s_6_48[4] = { 'a', 'd', 'a', 's' }; +static const symbol s_6_49[4] = { 'i', 'd', 'a', 's' }; +static const symbol s_6_50[3] = { 'i', 'a', 's' }; +static const symbol s_6_51[5] = { 'a', 'r', 'i', 'a', 's' }; +static const symbol s_6_52[5] = { 'e', 'r', 'i', 'a', 's' }; +static const symbol s_6_53[5] = { 'i', 'r', 'i', 'a', 's' }; +static const symbol s_6_54[4] = { 'a', 'r', 'a', 's' }; +static const symbol s_6_55[4] = { 'e', 'r', 'a', 's' }; +static const symbol s_6_56[4] = { 'i', 'r', 'a', 's' }; +static const symbol s_6_57[4] = { 'a', 'v', 'a', 's' }; +static const symbol s_6_58[2] = { 'e', 's' }; +static const symbol s_6_59[5] = { 'a', 'r', 'd', 'e', 's' }; +static const symbol s_6_60[5] = { 'e', 'r', 'd', 'e', 's' }; +static const symbol s_6_61[5] = { 'i', 'r', 'd', 'e', 's' }; +static const symbol s_6_62[4] = { 'a', 'r', 'e', 's' }; +static const symbol s_6_63[4] = { 'e', 'r', 'e', 's' }; +static const symbol s_6_64[4] = { 'i', 'r', 'e', 's' }; +static const symbol s_6_65[5] = { 'a', 's', 's', 'e', 's' }; +static const symbol s_6_66[5] = { 'e', 's', 's', 'e', 's' }; +static const symbol s_6_67[5] = { 'i', 's', 's', 'e', 's' }; +static const symbol s_6_68[5] = { 'a', 's', 't', 'e', 's' }; +static const symbol s_6_69[5] = { 'e', 's', 't', 'e', 's' }; +static const symbol s_6_70[5] = { 'i', 's', 't', 'e', 's' }; +static const symbol s_6_71[2] = { 'i', 's' }; +static const symbol s_6_72[3] = { 'a', 'i', 's' }; +static const symbol s_6_73[3] = { 'e', 'i', 's' }; +static const symbol s_6_74[5] = { 'a', 'r', 'e', 'i', 's' }; +static const symbol s_6_75[5] = { 'e', 'r', 'e', 'i', 's' }; +static const symbol s_6_76[5] = { 'i', 'r', 'e', 'i', 's' }; +static const symbol s_6_77[6] = { 0xC3, 0xA1, 'r', 'e', 'i', 's' }; +static const symbol s_6_78[6] = { 0xC3, 0xA9, 'r', 'e', 'i', 's' }; +static const symbol s_6_79[6] = { 0xC3, 0xAD, 'r', 'e', 'i', 's' }; +static const symbol s_6_80[7] = { 0xC3, 0xA1, 's', 's', 'e', 'i', 's' }; +static const symbol s_6_81[7] = { 0xC3, 0xA9, 's', 's', 'e', 'i', 's' }; +static const symbol s_6_82[7] = { 0xC3, 0xAD, 's', 's', 'e', 'i', 's' }; +static const symbol s_6_83[6] = { 0xC3, 0xA1, 'v', 'e', 'i', 's' }; +static const symbol s_6_84[5] = { 0xC3, 0xAD, 'e', 'i', 's' }; +static const symbol s_6_85[7] = { 'a', 'r', 0xC3, 0xAD, 'e', 'i', 's' }; +static const symbol s_6_86[7] = { 'e', 'r', 0xC3, 0xAD, 'e', 'i', 's' }; +static const symbol s_6_87[7] = { 'i', 'r', 0xC3, 0xAD, 'e', 'i', 's' }; +static const symbol s_6_88[4] = { 'a', 'd', 'o', 's' }; +static const symbol s_6_89[4] = { 'i', 'd', 'o', 's' }; +static const symbol s_6_90[4] = { 'a', 'm', 'o', 's' }; +static const symbol s_6_91[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' }; +static const symbol s_6_92[7] = { 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' }; +static const symbol s_6_93[7] = { 0xC3, 0xAD, 'r', 'a', 'm', 'o', 's' }; +static const symbol s_6_94[7] = { 0xC3, 0xA1, 'v', 'a', 'm', 'o', 's' }; +static const symbol s_6_95[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' }; +static const symbol s_6_96[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' }; +static const symbol s_6_97[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' }; +static const symbol s_6_98[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' }; +static const symbol s_6_99[4] = { 'e', 'm', 'o', 's' }; +static const symbol s_6_100[6] = { 'a', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_6_101[6] = { 'e', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_6_102[6] = { 'i', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_6_103[8] = { 0xC3, 0xA1, 's', 's', 'e', 'm', 'o', 's' }; +static const symbol s_6_104[8] = { 0xC3, 0xAA, 's', 's', 'e', 'm', 'o', 's' }; +static const symbol s_6_105[8] = { 0xC3, 0xAD, 's', 's', 'e', 'm', 'o', 's' }; +static const symbol s_6_106[4] = { 'i', 'm', 'o', 's' }; +static const symbol s_6_107[5] = { 'a', 'r', 'm', 'o', 's' }; +static const symbol s_6_108[5] = { 'e', 'r', 'm', 'o', 's' }; +static const symbol s_6_109[5] = { 'i', 'r', 'm', 'o', 's' }; +static const symbol s_6_110[5] = { 0xC3, 0xA1, 'm', 'o', 's' }; +static const symbol s_6_111[5] = { 'a', 'r', 0xC3, 0xA1, 's' }; +static const symbol s_6_112[5] = { 'e', 'r', 0xC3, 0xA1, 's' }; +static const symbol s_6_113[5] = { 'i', 'r', 0xC3, 0xA1, 's' }; +static const symbol s_6_114[2] = { 'e', 'u' }; +static const symbol s_6_115[2] = { 'i', 'u' }; +static const symbol s_6_116[2] = { 'o', 'u' }; +static const symbol s_6_117[4] = { 'a', 'r', 0xC3, 0xA1 }; +static const symbol s_6_118[4] = { 'e', 'r', 0xC3, 0xA1 }; +static const symbol s_6_119[4] = { 'i', 'r', 0xC3, 0xA1 }; + +static const struct among a_6[120] = +{ +/* 0 */ { 3, s_6_0, -1, 1, 0}, +/* 1 */ { 3, s_6_1, -1, 1, 0}, +/* 2 */ { 2, s_6_2, -1, 1, 0}, +/* 3 */ { 4, s_6_3, 2, 1, 0}, +/* 4 */ { 4, s_6_4, 2, 1, 0}, +/* 5 */ { 4, s_6_5, 2, 1, 0}, +/* 6 */ { 3, s_6_6, -1, 1, 0}, +/* 7 */ { 3, s_6_7, -1, 1, 0}, +/* 8 */ { 3, s_6_8, -1, 1, 0}, +/* 9 */ { 3, s_6_9, -1, 1, 0}, +/* 10 */ { 4, s_6_10, -1, 1, 0}, +/* 11 */ { 4, s_6_11, -1, 1, 0}, +/* 12 */ { 4, s_6_12, -1, 1, 0}, +/* 13 */ { 4, s_6_13, -1, 1, 0}, +/* 14 */ { 4, s_6_14, -1, 1, 0}, +/* 15 */ { 4, s_6_15, -1, 1, 0}, +/* 16 */ { 2, s_6_16, -1, 1, 0}, +/* 17 */ { 4, s_6_17, 16, 1, 0}, +/* 18 */ { 4, s_6_18, 16, 1, 0}, +/* 19 */ { 4, s_6_19, 16, 1, 0}, +/* 20 */ { 2, s_6_20, -1, 1, 0}, +/* 21 */ { 3, s_6_21, 20, 1, 0}, +/* 22 */ { 5, s_6_22, 21, 1, 0}, +/* 23 */ { 5, s_6_23, 21, 1, 0}, +/* 24 */ { 5, s_6_24, 21, 1, 0}, +/* 25 */ { 4, s_6_25, 20, 1, 0}, +/* 26 */ { 4, s_6_26, 20, 1, 0}, +/* 27 */ { 4, s_6_27, 20, 1, 0}, +/* 28 */ { 4, s_6_28, 20, 1, 0}, +/* 29 */ { 2, s_6_29, -1, 1, 0}, +/* 30 */ { 4, s_6_30, 29, 1, 0}, +/* 31 */ { 4, s_6_31, 29, 1, 0}, +/* 32 */ { 4, s_6_32, 29, 1, 0}, +/* 33 */ { 5, s_6_33, 29, 1, 0}, +/* 34 */ { 5, s_6_34, 29, 1, 0}, +/* 35 */ { 5, s_6_35, 29, 1, 0}, +/* 36 */ { 3, s_6_36, -1, 1, 0}, +/* 37 */ { 3, s_6_37, -1, 1, 0}, +/* 38 */ { 4, s_6_38, -1, 1, 0}, +/* 39 */ { 4, s_6_39, -1, 1, 0}, +/* 40 */ { 4, s_6_40, -1, 1, 0}, +/* 41 */ { 5, s_6_41, -1, 1, 0}, +/* 42 */ { 5, s_6_42, -1, 1, 0}, +/* 43 */ { 5, s_6_43, -1, 1, 0}, +/* 44 */ { 2, s_6_44, -1, 1, 0}, +/* 45 */ { 2, s_6_45, -1, 1, 0}, +/* 46 */ { 2, s_6_46, -1, 1, 0}, +/* 47 */ { 2, s_6_47, -1, 1, 0}, +/* 48 */ { 4, s_6_48, 47, 1, 0}, +/* 49 */ { 4, s_6_49, 47, 1, 0}, +/* 50 */ { 3, s_6_50, 47, 1, 0}, +/* 51 */ { 5, s_6_51, 50, 1, 0}, +/* 52 */ { 5, s_6_52, 50, 1, 0}, +/* 53 */ { 5, s_6_53, 50, 1, 0}, +/* 54 */ { 4, s_6_54, 47, 1, 0}, +/* 55 */ { 4, s_6_55, 47, 1, 0}, +/* 56 */ { 4, s_6_56, 47, 1, 0}, +/* 57 */ { 4, s_6_57, 47, 1, 0}, +/* 58 */ { 2, s_6_58, -1, 1, 0}, +/* 59 */ { 5, s_6_59, 58, 1, 0}, +/* 60 */ { 5, s_6_60, 58, 1, 0}, +/* 61 */ { 5, s_6_61, 58, 1, 0}, +/* 62 */ { 4, s_6_62, 58, 1, 0}, +/* 63 */ { 4, s_6_63, 58, 1, 0}, +/* 64 */ { 4, s_6_64, 58, 1, 0}, +/* 65 */ { 5, s_6_65, 58, 1, 0}, +/* 66 */ { 5, s_6_66, 58, 1, 0}, +/* 67 */ { 5, s_6_67, 58, 1, 0}, +/* 68 */ { 5, s_6_68, 58, 1, 0}, +/* 69 */ { 5, s_6_69, 58, 1, 0}, +/* 70 */ { 5, s_6_70, 58, 1, 0}, +/* 71 */ { 2, s_6_71, -1, 1, 0}, +/* 72 */ { 3, s_6_72, 71, 1, 0}, +/* 73 */ { 3, s_6_73, 71, 1, 0}, +/* 74 */ { 5, s_6_74, 73, 1, 0}, +/* 75 */ { 5, s_6_75, 73, 1, 0}, +/* 76 */ { 5, s_6_76, 73, 1, 0}, +/* 77 */ { 6, s_6_77, 73, 1, 0}, +/* 78 */ { 6, s_6_78, 73, 1, 0}, +/* 79 */ { 6, s_6_79, 73, 1, 0}, +/* 80 */ { 7, s_6_80, 73, 1, 0}, +/* 81 */ { 7, s_6_81, 73, 1, 0}, +/* 82 */ { 7, s_6_82, 73, 1, 0}, +/* 83 */ { 6, s_6_83, 73, 1, 0}, +/* 84 */ { 5, s_6_84, 73, 1, 0}, +/* 85 */ { 7, s_6_85, 84, 1, 0}, +/* 86 */ { 7, s_6_86, 84, 1, 0}, +/* 87 */ { 7, s_6_87, 84, 1, 0}, +/* 88 */ { 4, s_6_88, -1, 1, 0}, +/* 89 */ { 4, s_6_89, -1, 1, 0}, +/* 90 */ { 4, s_6_90, -1, 1, 0}, +/* 91 */ { 7, s_6_91, 90, 1, 0}, +/* 92 */ { 7, s_6_92, 90, 1, 0}, +/* 93 */ { 7, s_6_93, 90, 1, 0}, +/* 94 */ { 7, s_6_94, 90, 1, 0}, +/* 95 */ { 6, s_6_95, 90, 1, 0}, +/* 96 */ { 8, s_6_96, 95, 1, 0}, +/* 97 */ { 8, s_6_97, 95, 1, 0}, +/* 98 */ { 8, s_6_98, 95, 1, 0}, +/* 99 */ { 4, s_6_99, -1, 1, 0}, +/*100 */ { 6, s_6_100, 99, 1, 0}, +/*101 */ { 6, s_6_101, 99, 1, 0}, +/*102 */ { 6, s_6_102, 99, 1, 0}, +/*103 */ { 8, s_6_103, 99, 1, 0}, +/*104 */ { 8, s_6_104, 99, 1, 0}, +/*105 */ { 8, s_6_105, 99, 1, 0}, +/*106 */ { 4, s_6_106, -1, 1, 0}, +/*107 */ { 5, s_6_107, -1, 1, 0}, +/*108 */ { 5, s_6_108, -1, 1, 0}, +/*109 */ { 5, s_6_109, -1, 1, 0}, +/*110 */ { 5, s_6_110, -1, 1, 0}, +/*111 */ { 5, s_6_111, -1, 1, 0}, +/*112 */ { 5, s_6_112, -1, 1, 0}, +/*113 */ { 5, s_6_113, -1, 1, 0}, +/*114 */ { 2, s_6_114, -1, 1, 0}, +/*115 */ { 2, s_6_115, -1, 1, 0}, +/*116 */ { 2, s_6_116, -1, 1, 0}, +/*117 */ { 4, s_6_117, -1, 1, 0}, +/*118 */ { 4, s_6_118, -1, 1, 0}, +/*119 */ { 4, s_6_119, -1, 1, 0} +}; + +static const symbol s_7_0[1] = { 'a' }; +static const symbol s_7_1[1] = { 'i' }; +static const symbol s_7_2[1] = { 'o' }; +static const symbol s_7_3[2] = { 'o', 's' }; +static const symbol s_7_4[2] = { 0xC3, 0xA1 }; +static const symbol s_7_5[2] = { 0xC3, 0xAD }; +static const symbol s_7_6[2] = { 0xC3, 0xB3 }; + +static const struct among a_7[7] = +{ +/* 0 */ { 1, s_7_0, -1, 1, 0}, +/* 1 */ { 1, s_7_1, -1, 1, 0}, +/* 2 */ { 1, s_7_2, -1, 1, 0}, +/* 3 */ { 2, s_7_3, -1, 1, 0}, +/* 4 */ { 2, s_7_4, -1, 1, 0}, +/* 5 */ { 2, s_7_5, -1, 1, 0}, +/* 6 */ { 2, s_7_6, -1, 1, 0} +}; + +static const symbol s_8_0[1] = { 'e' }; +static const symbol s_8_1[2] = { 0xC3, 0xA7 }; +static const symbol s_8_2[2] = { 0xC3, 0xA9 }; +static const symbol s_8_3[2] = { 0xC3, 0xAA }; + +static const struct among a_8[4] = +{ +/* 0 */ { 1, s_8_0, -1, 1, 0}, +/* 1 */ { 2, s_8_1, -1, 2, 0}, +/* 2 */ { 2, s_8_2, -1, 1, 0}, +/* 3 */ { 2, s_8_3, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 }; + +static const symbol s_0[] = { 'a', '~' }; +static const symbol s_1[] = { 'o', '~' }; +static const symbol s_2[] = { 0xC3, 0xA3 }; +static const symbol s_3[] = { 0xC3, 0xB5 }; +static const symbol s_4[] = { 'l', 'o', 'g' }; +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[] = { 'i', 'r' }; +static const symbol s_10[] = { 'c' }; + +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 /* 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) { /* among, line 37 */ + case 1: + { int ret = slice_from_s(z, 2, s_0); /* <-, line 38 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 2, s_1); /* <-, line 39 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 40 */ + } + break; + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +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; /* grouping v, line 51 */ + { int c3 = z->c; /* or, line 51 */ + 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; + z->c += ret; + } + goto lab3; + lab4: + z->c = c3; + 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; + z->c += ret; + } + } + lab3: + goto lab1; + lab2: + z->c = c2; + 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; /* 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; + z->c += ret; + } + goto lab5; + lab6: + z->c = c4; + 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 */ + } + } + lab5: + ; + } + lab1: + z->I[0] = z->c; /* setmark pV, line 54 */ + lab0: + z->c = c1; + } + { int c5 = z->c; /* do, line 56 */ + { /* gopast */ /* grouping v, line 57 */ + int ret = out_grouping_U(z, g_v, 97, 250, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 57 */ + int ret = in_grouping_U(z, g_v, 97, 250, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[1] = z->c; /* setmark p1, line 57 */ + { /* gopast */ /* grouping v, line 58 */ + int ret = out_grouping_U(z, g_v, 97, 250, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 58 */ + int ret = in_grouping_U(z, g_v, 97, 250, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[2] = z->c; /* setmark p2, line 58 */ + lab7: + z->c = c5; + } + return 1; +} + +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 /* 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) { /* among, line 63 */ + case 1: + { int ret = slice_from_s(z, 2, s_2); /* <-, line 64 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 2, s_3); /* <-, line 65 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 66 */ + } + break; + } + continue; + lab0: + z->c = c1; + 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 72 */ + return 1; +} + +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) { /* 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) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, 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) { /* among, line 77 */ + case 1: + { 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); /* 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); /* 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); /* 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); /* call R1, line 110 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 110 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* try, line 111 */ + z->ket = z->c; /* [, line 112 */ + if (z->c - 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); /* 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) { /* among, line 112 */ + case 1: + z->ket = z->c; /* [, line 113 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + break; + } + lab0: + ; + } + break; + case 6: + { 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 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 - 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 */ + { 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); /* call R2, line 134 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 134 */ + if (ret < 0) return ret; + } + { 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 - 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 */ + { 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); /* call R2, line 146 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 146 */ + if (ret < 0) return ret; + } + { 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 - m4; goto lab3; } /* literal, line 148 */ + z->bra = z->c; /* ], 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 */ + if (ret < 0) return ret; + } + lab3: + ; + } + break; + case 9: + { int ret = r_RV(z); /* call RV, line 153 */ + if (ret <= 0) return ret; + } + 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; + } + return 1; +} + +static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 159 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 160 */ + if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; } /* substring, line 160 */ + z->bra = z->c; /* ], line 160 */ + { int ret = slice_del(z); /* delete, line 179 */ + if (ret < 0) return ret; + } + z->lb = mlimit1; + } + return 1; +} + +static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 184 */ + if (!(find_among_b(z, a_7, 7))) return 0; /* substring, line 184 */ + z->bra = z->c; /* ], line 184 */ + { 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) { /* 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) { /* among, line 192 */ + case 1: + { 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 (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_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 (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_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); /* 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_10); /* <-, line 196 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +extern int portuguese_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, 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; + } + /* 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 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 - 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 - m4; + { int m6 = z->l - z->c; (void)m6; /* do, line 207 */ + z->ket = z->c; /* [, line 207 */ + 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_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); /* 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 - m6; + } + } + goto lab3; + lab4: + 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 - m2; + } + { int m8 = z->l - z->c; (void)m8; /* do, line 211 */ + { int ret = r_residual_form(z); /* call residual_form, line 211 */ + if (ret == 0) goto lab8; + if (ret < 0) return ret; + } + lab8: + z->c = z->l - m8; + } + z->c = z->lb; + { int c9 = z->c; /* do, line 213 */ + { int ret = r_postlude(z); /* call postlude, line 213 */ + if (ret == 0) goto lab9; + if (ret < 0) return ret; + } + lab9: + z->c = c9; + } + return 1; +} + +extern struct SN_env * portuguese_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } + +extern void portuguese_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_romanian.c b/src/backend/snowball/libstemmer/stem_UTF_8_romanian.c new file mode 100644 index 0000000..0e1e5fc --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_romanian.c @@ -0,0 +1,984 @@ +/* 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 romanian_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_vowel_suffix(struct SN_env * z); +static int r_verb_suffix(struct SN_env * z); +static int r_combo_suffix(struct SN_env * z); +static int r_standard_suffix(struct SN_env * z); +static int r_step_0(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * romanian_UTF_8_create_env(void); +extern void romanian_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[1] = { 'I' }; +static const symbol s_0_2[1] = { 'U' }; + +static const struct among a_0[3] = +{ +/* 0 */ { 0, 0, -1, 3, 0}, +/* 1 */ { 1, s_0_1, 0, 1, 0}, +/* 2 */ { 1, s_0_2, 0, 2, 0} +}; + +static const symbol s_1_0[2] = { 'e', 'a' }; +static const symbol s_1_1[5] = { 'a', 0xC5, 0xA3, 'i', 'a' }; +static const symbol s_1_2[3] = { 'a', 'u', 'a' }; +static const symbol s_1_3[3] = { 'i', 'u', 'a' }; +static const symbol s_1_4[5] = { 'a', 0xC5, 0xA3, 'i', 'e' }; +static const symbol s_1_5[3] = { 'e', 'l', 'e' }; +static const symbol s_1_6[3] = { 'i', 'l', 'e' }; +static const symbol s_1_7[4] = { 'i', 'i', 'l', 'e' }; +static const symbol s_1_8[3] = { 'i', 'e', 'i' }; +static const symbol s_1_9[4] = { 'a', 't', 'e', 'i' }; +static const symbol s_1_10[2] = { 'i', 'i' }; +static const symbol s_1_11[4] = { 'u', 'l', 'u', 'i' }; +static const symbol s_1_12[2] = { 'u', 'l' }; +static const symbol s_1_13[4] = { 'e', 'l', 'o', 'r' }; +static const symbol s_1_14[4] = { 'i', 'l', 'o', 'r' }; +static const symbol s_1_15[5] = { 'i', 'i', 'l', 'o', 'r' }; + +static const struct among a_1[16] = +{ +/* 0 */ { 2, s_1_0, -1, 3, 0}, +/* 1 */ { 5, s_1_1, -1, 7, 0}, +/* 2 */ { 3, s_1_2, -1, 2, 0}, +/* 3 */ { 3, s_1_3, -1, 4, 0}, +/* 4 */ { 5, s_1_4, -1, 7, 0}, +/* 5 */ { 3, s_1_5, -1, 3, 0}, +/* 6 */ { 3, s_1_6, -1, 5, 0}, +/* 7 */ { 4, s_1_7, 6, 4, 0}, +/* 8 */ { 3, s_1_8, -1, 4, 0}, +/* 9 */ { 4, s_1_9, -1, 6, 0}, +/* 10 */ { 2, s_1_10, -1, 4, 0}, +/* 11 */ { 4, s_1_11, -1, 1, 0}, +/* 12 */ { 2, s_1_12, -1, 1, 0}, +/* 13 */ { 4, s_1_13, -1, 3, 0}, +/* 14 */ { 4, s_1_14, -1, 4, 0}, +/* 15 */ { 5, s_1_15, 14, 4, 0} +}; + +static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' }; +static const symbol s_2_1[5] = { 'i', 'c', 'i', 'v', 'a' }; +static const symbol s_2_2[5] = { 'a', 't', 'i', 'v', 'a' }; +static const symbol s_2_3[5] = { 'i', 't', 'i', 'v', 'a' }; +static const symbol s_2_4[5] = { 'i', 'c', 'a', 'l', 'e' }; +static const symbol s_2_5[7] = { 'a', 0xC5, 0xA3, 'i', 'u', 'n', 'e' }; +static const symbol s_2_6[7] = { 'i', 0xC5, 0xA3, 'i', 'u', 'n', 'e' }; +static const symbol s_2_7[6] = { 'a', 't', 'o', 'a', 'r', 'e' }; +static const symbol s_2_8[6] = { 'i', 't', 'o', 'a', 'r', 'e' }; +static const symbol s_2_9[7] = { 0xC4, 0x83, 't', 'o', 'a', 'r', 'e' }; +static const symbol s_2_10[7] = { 'i', 'c', 'i', 't', 'a', 't', 'e' }; +static const symbol s_2_11[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' }; +static const symbol s_2_12[9] = { 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' }; +static const symbol s_2_13[7] = { 'i', 'v', 'i', 't', 'a', 't', 'e' }; +static const symbol s_2_14[5] = { 'i', 'c', 'i', 'v', 'e' }; +static const symbol s_2_15[5] = { 'a', 't', 'i', 'v', 'e' }; +static const symbol s_2_16[5] = { 'i', 't', 'i', 'v', 'e' }; +static const symbol s_2_17[5] = { 'i', 'c', 'a', 'l', 'i' }; +static const symbol s_2_18[5] = { 'a', 't', 'o', 'r', 'i' }; +static const symbol s_2_19[7] = { 'i', 'c', 'a', 't', 'o', 'r', 'i' }; +static const symbol s_2_20[5] = { 'i', 't', 'o', 'r', 'i' }; +static const symbol s_2_21[6] = { 0xC4, 0x83, 't', 'o', 'r', 'i' }; +static const symbol s_2_22[7] = { 'i', 'c', 'i', 't', 'a', 't', 'i' }; +static const symbol s_2_23[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i' }; +static const symbol s_2_24[7] = { 'i', 'v', 'i', 't', 'a', 't', 'i' }; +static const symbol s_2_25[5] = { 'i', 'c', 'i', 'v', 'i' }; +static const symbol s_2_26[5] = { 'a', 't', 'i', 'v', 'i' }; +static const symbol s_2_27[5] = { 'i', 't', 'i', 'v', 'i' }; +static const symbol s_2_28[7] = { 'i', 'c', 'i', 't', 0xC4, 0x83, 'i' }; +static const symbol s_2_29[9] = { 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 'i' }; +static const symbol s_2_30[7] = { 'i', 'v', 'i', 't', 0xC4, 0x83, 'i' }; +static const symbol s_2_31[9] = { 'i', 'c', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_2_32[11] = { 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_2_33[9] = { 'i', 'v', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_2_34[4] = { 'i', 'c', 'a', 'l' }; +static const symbol s_2_35[4] = { 'a', 't', 'o', 'r' }; +static const symbol s_2_36[6] = { 'i', 'c', 'a', 't', 'o', 'r' }; +static const symbol s_2_37[4] = { 'i', 't', 'o', 'r' }; +static const symbol s_2_38[5] = { 0xC4, 0x83, 't', 'o', 'r' }; +static const symbol s_2_39[4] = { 'i', 'c', 'i', 'v' }; +static const symbol s_2_40[4] = { 'a', 't', 'i', 'v' }; +static const symbol s_2_41[4] = { 'i', 't', 'i', 'v' }; +static const symbol s_2_42[6] = { 'i', 'c', 'a', 'l', 0xC4, 0x83 }; +static const symbol s_2_43[6] = { 'i', 'c', 'i', 'v', 0xC4, 0x83 }; +static const symbol s_2_44[6] = { 'a', 't', 'i', 'v', 0xC4, 0x83 }; +static const symbol s_2_45[6] = { 'i', 't', 'i', 'v', 0xC4, 0x83 }; + +static const struct among a_2[46] = +{ +/* 0 */ { 5, s_2_0, -1, 4, 0}, +/* 1 */ { 5, s_2_1, -1, 4, 0}, +/* 2 */ { 5, s_2_2, -1, 5, 0}, +/* 3 */ { 5, s_2_3, -1, 6, 0}, +/* 4 */ { 5, s_2_4, -1, 4, 0}, +/* 5 */ { 7, s_2_5, -1, 5, 0}, +/* 6 */ { 7, s_2_6, -1, 6, 0}, +/* 7 */ { 6, s_2_7, -1, 5, 0}, +/* 8 */ { 6, s_2_8, -1, 6, 0}, +/* 9 */ { 7, s_2_9, -1, 5, 0}, +/* 10 */ { 7, s_2_10, -1, 4, 0}, +/* 11 */ { 9, s_2_11, -1, 1, 0}, +/* 12 */ { 9, s_2_12, -1, 2, 0}, +/* 13 */ { 7, s_2_13, -1, 3, 0}, +/* 14 */ { 5, s_2_14, -1, 4, 0}, +/* 15 */ { 5, s_2_15, -1, 5, 0}, +/* 16 */ { 5, s_2_16, -1, 6, 0}, +/* 17 */ { 5, s_2_17, -1, 4, 0}, +/* 18 */ { 5, s_2_18, -1, 5, 0}, +/* 19 */ { 7, s_2_19, 18, 4, 0}, +/* 20 */ { 5, s_2_20, -1, 6, 0}, +/* 21 */ { 6, s_2_21, -1, 5, 0}, +/* 22 */ { 7, s_2_22, -1, 4, 0}, +/* 23 */ { 9, s_2_23, -1, 1, 0}, +/* 24 */ { 7, s_2_24, -1, 3, 0}, +/* 25 */ { 5, s_2_25, -1, 4, 0}, +/* 26 */ { 5, s_2_26, -1, 5, 0}, +/* 27 */ { 5, s_2_27, -1, 6, 0}, +/* 28 */ { 7, s_2_28, -1, 4, 0}, +/* 29 */ { 9, s_2_29, -1, 1, 0}, +/* 30 */ { 7, s_2_30, -1, 3, 0}, +/* 31 */ { 9, s_2_31, -1, 4, 0}, +/* 32 */ { 11, s_2_32, -1, 1, 0}, +/* 33 */ { 9, s_2_33, -1, 3, 0}, +/* 34 */ { 4, s_2_34, -1, 4, 0}, +/* 35 */ { 4, s_2_35, -1, 5, 0}, +/* 36 */ { 6, s_2_36, 35, 4, 0}, +/* 37 */ { 4, s_2_37, -1, 6, 0}, +/* 38 */ { 5, s_2_38, -1, 5, 0}, +/* 39 */ { 4, s_2_39, -1, 4, 0}, +/* 40 */ { 4, s_2_40, -1, 5, 0}, +/* 41 */ { 4, s_2_41, -1, 6, 0}, +/* 42 */ { 6, s_2_42, -1, 4, 0}, +/* 43 */ { 6, s_2_43, -1, 4, 0}, +/* 44 */ { 6, s_2_44, -1, 5, 0}, +/* 45 */ { 6, s_2_45, -1, 6, 0} +}; + +static const symbol s_3_0[3] = { 'i', 'c', 'a' }; +static const symbol s_3_1[5] = { 'a', 'b', 'i', 'l', 'a' }; +static const symbol s_3_2[5] = { 'i', 'b', 'i', 'l', 'a' }; +static const symbol s_3_3[4] = { 'o', 'a', 's', 'a' }; +static const symbol s_3_4[3] = { 'a', 't', 'a' }; +static const symbol s_3_5[3] = { 'i', 't', 'a' }; +static const symbol s_3_6[4] = { 'a', 'n', 't', 'a' }; +static const symbol s_3_7[4] = { 'i', 's', 't', 'a' }; +static const symbol s_3_8[3] = { 'u', 't', 'a' }; +static const symbol s_3_9[3] = { 'i', 'v', 'a' }; +static const symbol s_3_10[2] = { 'i', 'c' }; +static const symbol s_3_11[3] = { 'i', 'c', 'e' }; +static const symbol s_3_12[5] = { 'a', 'b', 'i', 'l', 'e' }; +static const symbol s_3_13[5] = { 'i', 'b', 'i', 'l', 'e' }; +static const symbol s_3_14[4] = { 'i', 's', 'm', 'e' }; +static const symbol s_3_15[4] = { 'i', 'u', 'n', 'e' }; +static const symbol s_3_16[4] = { 'o', 'a', 's', 'e' }; +static const symbol s_3_17[3] = { 'a', 't', 'e' }; +static const symbol s_3_18[5] = { 'i', 't', 'a', 't', 'e' }; +static const symbol s_3_19[3] = { 'i', 't', 'e' }; +static const symbol s_3_20[4] = { 'a', 'n', 't', 'e' }; +static const symbol s_3_21[4] = { 'i', 's', 't', 'e' }; +static const symbol s_3_22[3] = { 'u', 't', 'e' }; +static const symbol s_3_23[3] = { 'i', 'v', 'e' }; +static const symbol s_3_24[3] = { 'i', 'c', 'i' }; +static const symbol s_3_25[5] = { 'a', 'b', 'i', 'l', 'i' }; +static const symbol s_3_26[5] = { 'i', 'b', 'i', 'l', 'i' }; +static const symbol s_3_27[4] = { 'i', 'u', 'n', 'i' }; +static const symbol s_3_28[5] = { 'a', 't', 'o', 'r', 'i' }; +static const symbol s_3_29[3] = { 'o', 's', 'i' }; +static const symbol s_3_30[3] = { 'a', 't', 'i' }; +static const symbol s_3_31[5] = { 'i', 't', 'a', 't', 'i' }; +static const symbol s_3_32[3] = { 'i', 't', 'i' }; +static const symbol s_3_33[4] = { 'a', 'n', 't', 'i' }; +static const symbol s_3_34[4] = { 'i', 's', 't', 'i' }; +static const symbol s_3_35[3] = { 'u', 't', 'i' }; +static const symbol s_3_36[5] = { 'i', 0xC5, 0x9F, 't', 'i' }; +static const symbol s_3_37[3] = { 'i', 'v', 'i' }; +static const symbol s_3_38[5] = { 'i', 't', 0xC4, 0x83, 'i' }; +static const symbol s_3_39[4] = { 'o', 0xC5, 0x9F, 'i' }; +static const symbol s_3_40[7] = { 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_3_41[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_3_42[4] = { 'i', 'b', 'i', 'l' }; +static const symbol s_3_43[3] = { 'i', 's', 'm' }; +static const symbol s_3_44[4] = { 'a', 't', 'o', 'r' }; +static const symbol s_3_45[2] = { 'o', 's' }; +static const symbol s_3_46[2] = { 'a', 't' }; +static const symbol s_3_47[2] = { 'i', 't' }; +static const symbol s_3_48[3] = { 'a', 'n', 't' }; +static const symbol s_3_49[3] = { 'i', 's', 't' }; +static const symbol s_3_50[2] = { 'u', 't' }; +static const symbol s_3_51[2] = { 'i', 'v' }; +static const symbol s_3_52[4] = { 'i', 'c', 0xC4, 0x83 }; +static const symbol s_3_53[6] = { 'a', 'b', 'i', 'l', 0xC4, 0x83 }; +static const symbol s_3_54[6] = { 'i', 'b', 'i', 'l', 0xC4, 0x83 }; +static const symbol s_3_55[5] = { 'o', 'a', 's', 0xC4, 0x83 }; +static const symbol s_3_56[4] = { 'a', 't', 0xC4, 0x83 }; +static const symbol s_3_57[4] = { 'i', 't', 0xC4, 0x83 }; +static const symbol s_3_58[5] = { 'a', 'n', 't', 0xC4, 0x83 }; +static const symbol s_3_59[5] = { 'i', 's', 't', 0xC4, 0x83 }; +static const symbol s_3_60[4] = { 'u', 't', 0xC4, 0x83 }; +static const symbol s_3_61[4] = { 'i', 'v', 0xC4, 0x83 }; + +static const struct among a_3[62] = +{ +/* 0 */ { 3, s_3_0, -1, 1, 0}, +/* 1 */ { 5, s_3_1, -1, 1, 0}, +/* 2 */ { 5, s_3_2, -1, 1, 0}, +/* 3 */ { 4, s_3_3, -1, 1, 0}, +/* 4 */ { 3, s_3_4, -1, 1, 0}, +/* 5 */ { 3, s_3_5, -1, 1, 0}, +/* 6 */ { 4, s_3_6, -1, 1, 0}, +/* 7 */ { 4, s_3_7, -1, 3, 0}, +/* 8 */ { 3, s_3_8, -1, 1, 0}, +/* 9 */ { 3, s_3_9, -1, 1, 0}, +/* 10 */ { 2, s_3_10, -1, 1, 0}, +/* 11 */ { 3, s_3_11, -1, 1, 0}, +/* 12 */ { 5, s_3_12, -1, 1, 0}, +/* 13 */ { 5, s_3_13, -1, 1, 0}, +/* 14 */ { 4, s_3_14, -1, 3, 0}, +/* 15 */ { 4, s_3_15, -1, 2, 0}, +/* 16 */ { 4, s_3_16, -1, 1, 0}, +/* 17 */ { 3, s_3_17, -1, 1, 0}, +/* 18 */ { 5, s_3_18, 17, 1, 0}, +/* 19 */ { 3, s_3_19, -1, 1, 0}, +/* 20 */ { 4, s_3_20, -1, 1, 0}, +/* 21 */ { 4, s_3_21, -1, 3, 0}, +/* 22 */ { 3, s_3_22, -1, 1, 0}, +/* 23 */ { 3, s_3_23, -1, 1, 0}, +/* 24 */ { 3, s_3_24, -1, 1, 0}, +/* 25 */ { 5, s_3_25, -1, 1, 0}, +/* 26 */ { 5, s_3_26, -1, 1, 0}, +/* 27 */ { 4, s_3_27, -1, 2, 0}, +/* 28 */ { 5, s_3_28, -1, 1, 0}, +/* 29 */ { 3, s_3_29, -1, 1, 0}, +/* 30 */ { 3, s_3_30, -1, 1, 0}, +/* 31 */ { 5, s_3_31, 30, 1, 0}, +/* 32 */ { 3, s_3_32, -1, 1, 0}, +/* 33 */ { 4, s_3_33, -1, 1, 0}, +/* 34 */ { 4, s_3_34, -1, 3, 0}, +/* 35 */ { 3, s_3_35, -1, 1, 0}, +/* 36 */ { 5, s_3_36, -1, 3, 0}, +/* 37 */ { 3, s_3_37, -1, 1, 0}, +/* 38 */ { 5, s_3_38, -1, 1, 0}, +/* 39 */ { 4, s_3_39, -1, 1, 0}, +/* 40 */ { 7, s_3_40, -1, 1, 0}, +/* 41 */ { 4, s_3_41, -1, 1, 0}, +/* 42 */ { 4, s_3_42, -1, 1, 0}, +/* 43 */ { 3, s_3_43, -1, 3, 0}, +/* 44 */ { 4, s_3_44, -1, 1, 0}, +/* 45 */ { 2, s_3_45, -1, 1, 0}, +/* 46 */ { 2, s_3_46, -1, 1, 0}, +/* 47 */ { 2, s_3_47, -1, 1, 0}, +/* 48 */ { 3, s_3_48, -1, 1, 0}, +/* 49 */ { 3, s_3_49, -1, 3, 0}, +/* 50 */ { 2, s_3_50, -1, 1, 0}, +/* 51 */ { 2, s_3_51, -1, 1, 0}, +/* 52 */ { 4, s_3_52, -1, 1, 0}, +/* 53 */ { 6, s_3_53, -1, 1, 0}, +/* 54 */ { 6, s_3_54, -1, 1, 0}, +/* 55 */ { 5, s_3_55, -1, 1, 0}, +/* 56 */ { 4, s_3_56, -1, 1, 0}, +/* 57 */ { 4, s_3_57, -1, 1, 0}, +/* 58 */ { 5, s_3_58, -1, 1, 0}, +/* 59 */ { 5, s_3_59, -1, 3, 0}, +/* 60 */ { 4, s_3_60, -1, 1, 0}, +/* 61 */ { 4, s_3_61, -1, 1, 0} +}; + +static const symbol s_4_0[2] = { 'e', 'a' }; +static const symbol s_4_1[2] = { 'i', 'a' }; +static const symbol s_4_2[3] = { 'e', 's', 'c' }; +static const symbol s_4_3[4] = { 0xC4, 0x83, 's', 'c' }; +static const symbol s_4_4[3] = { 'i', 'n', 'd' }; +static const symbol s_4_5[4] = { 0xC3, 0xA2, 'n', 'd' }; +static const symbol s_4_6[3] = { 'a', 'r', 'e' }; +static const symbol s_4_7[3] = { 'e', 'r', 'e' }; +static const symbol s_4_8[3] = { 'i', 'r', 'e' }; +static const symbol s_4_9[4] = { 0xC3, 0xA2, 'r', 'e' }; +static const symbol s_4_10[2] = { 's', 'e' }; +static const symbol s_4_11[3] = { 'a', 's', 'e' }; +static const symbol s_4_12[4] = { 's', 'e', 's', 'e' }; +static const symbol s_4_13[3] = { 'i', 's', 'e' }; +static const symbol s_4_14[3] = { 'u', 's', 'e' }; +static const symbol s_4_15[4] = { 0xC3, 0xA2, 's', 'e' }; +static const symbol s_4_16[5] = { 'e', 0xC5, 0x9F, 't', 'e' }; +static const symbol s_4_17[6] = { 0xC4, 0x83, 0xC5, 0x9F, 't', 'e' }; +static const symbol s_4_18[3] = { 'e', 'z', 'e' }; +static const symbol s_4_19[2] = { 'a', 'i' }; +static const symbol s_4_20[3] = { 'e', 'a', 'i' }; +static const symbol s_4_21[3] = { 'i', 'a', 'i' }; +static const symbol s_4_22[3] = { 's', 'e', 'i' }; +static const symbol s_4_23[5] = { 'e', 0xC5, 0x9F, 't', 'i' }; +static const symbol s_4_24[6] = { 0xC4, 0x83, 0xC5, 0x9F, 't', 'i' }; +static const symbol s_4_25[2] = { 'u', 'i' }; +static const symbol s_4_26[3] = { 'e', 'z', 'i' }; +static const symbol s_4_27[4] = { 'a', 0xC5, 0x9F, 'i' }; +static const symbol s_4_28[5] = { 's', 'e', 0xC5, 0x9F, 'i' }; +static const symbol s_4_29[6] = { 'a', 's', 'e', 0xC5, 0x9F, 'i' }; +static const symbol s_4_30[7] = { 's', 'e', 's', 'e', 0xC5, 0x9F, 'i' }; +static const symbol s_4_31[6] = { 'i', 's', 'e', 0xC5, 0x9F, 'i' }; +static const symbol s_4_32[6] = { 'u', 's', 'e', 0xC5, 0x9F, 'i' }; +static const symbol s_4_33[7] = { 0xC3, 0xA2, 's', 'e', 0xC5, 0x9F, 'i' }; +static const symbol s_4_34[4] = { 'i', 0xC5, 0x9F, 'i' }; +static const symbol s_4_35[4] = { 'u', 0xC5, 0x9F, 'i' }; +static const symbol s_4_36[5] = { 0xC3, 0xA2, 0xC5, 0x9F, 'i' }; +static const symbol s_4_37[3] = { 0xC3, 0xA2, 'i' }; +static const symbol s_4_38[4] = { 'a', 0xC5, 0xA3, 'i' }; +static const symbol s_4_39[5] = { 'e', 'a', 0xC5, 0xA3, 'i' }; +static const symbol s_4_40[5] = { 'i', 'a', 0xC5, 0xA3, 'i' }; +static const symbol s_4_41[4] = { 'e', 0xC5, 0xA3, 'i' }; +static const symbol s_4_42[4] = { 'i', 0xC5, 0xA3, 'i' }; +static const symbol s_4_43[7] = { 'a', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_4_44[8] = { 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_4_45[9] = { 'a', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_4_46[10] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_4_47[9] = { 'i', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_4_48[9] = { 'u', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_4_49[10] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_4_50[7] = { 'i', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_4_51[7] = { 'u', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_4_52[8] = { 0xC3, 0xA2, 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' }; +static const symbol s_4_53[5] = { 0xC3, 0xA2, 0xC5, 0xA3, 'i' }; +static const symbol s_4_54[2] = { 'a', 'm' }; +static const symbol s_4_55[3] = { 'e', 'a', 'm' }; +static const symbol s_4_56[3] = { 'i', 'a', 'm' }; +static const symbol s_4_57[2] = { 'e', 'm' }; +static const symbol s_4_58[4] = { 'a', 's', 'e', 'm' }; +static const symbol s_4_59[5] = { 's', 'e', 's', 'e', 'm' }; +static const symbol s_4_60[4] = { 'i', 's', 'e', 'm' }; +static const symbol s_4_61[4] = { 'u', 's', 'e', 'm' }; +static const symbol s_4_62[5] = { 0xC3, 0xA2, 's', 'e', 'm' }; +static const symbol s_4_63[2] = { 'i', 'm' }; +static const symbol s_4_64[3] = { 0xC4, 0x83, 'm' }; +static const symbol s_4_65[5] = { 'a', 'r', 0xC4, 0x83, 'm' }; +static const symbol s_4_66[6] = { 's', 'e', 'r', 0xC4, 0x83, 'm' }; +static const symbol s_4_67[7] = { 'a', 's', 'e', 'r', 0xC4, 0x83, 'm' }; +static const symbol s_4_68[8] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 'm' }; +static const symbol s_4_69[7] = { 'i', 's', 'e', 'r', 0xC4, 0x83, 'm' }; +static const symbol s_4_70[7] = { 'u', 's', 'e', 'r', 0xC4, 0x83, 'm' }; +static const symbol s_4_71[8] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 'm' }; +static const symbol s_4_72[5] = { 'i', 'r', 0xC4, 0x83, 'm' }; +static const symbol s_4_73[5] = { 'u', 'r', 0xC4, 0x83, 'm' }; +static const symbol s_4_74[6] = { 0xC3, 0xA2, 'r', 0xC4, 0x83, 'm' }; +static const symbol s_4_75[3] = { 0xC3, 0xA2, 'm' }; +static const symbol s_4_76[2] = { 'a', 'u' }; +static const symbol s_4_77[3] = { 'e', 'a', 'u' }; +static const symbol s_4_78[3] = { 'i', 'a', 'u' }; +static const symbol s_4_79[4] = { 'i', 'n', 'd', 'u' }; +static const symbol s_4_80[5] = { 0xC3, 0xA2, 'n', 'd', 'u' }; +static const symbol s_4_81[2] = { 'e', 'z' }; +static const symbol s_4_82[6] = { 'e', 'a', 's', 'c', 0xC4, 0x83 }; +static const symbol s_4_83[4] = { 'a', 'r', 0xC4, 0x83 }; +static const symbol s_4_84[5] = { 's', 'e', 'r', 0xC4, 0x83 }; +static const symbol s_4_85[6] = { 'a', 's', 'e', 'r', 0xC4, 0x83 }; +static const symbol s_4_86[7] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83 }; +static const symbol s_4_87[6] = { 'i', 's', 'e', 'r', 0xC4, 0x83 }; +static const symbol s_4_88[6] = { 'u', 's', 'e', 'r', 0xC4, 0x83 }; +static const symbol s_4_89[7] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83 }; +static const symbol s_4_90[4] = { 'i', 'r', 0xC4, 0x83 }; +static const symbol s_4_91[4] = { 'u', 'r', 0xC4, 0x83 }; +static const symbol s_4_92[5] = { 0xC3, 0xA2, 'r', 0xC4, 0x83 }; +static const symbol s_4_93[5] = { 'e', 'a', 'z', 0xC4, 0x83 }; + +static const struct among a_4[94] = +{ +/* 0 */ { 2, s_4_0, -1, 1, 0}, +/* 1 */ { 2, s_4_1, -1, 1, 0}, +/* 2 */ { 3, s_4_2, -1, 1, 0}, +/* 3 */ { 4, s_4_3, -1, 1, 0}, +/* 4 */ { 3, s_4_4, -1, 1, 0}, +/* 5 */ { 4, s_4_5, -1, 1, 0}, +/* 6 */ { 3, s_4_6, -1, 1, 0}, +/* 7 */ { 3, s_4_7, -1, 1, 0}, +/* 8 */ { 3, s_4_8, -1, 1, 0}, +/* 9 */ { 4, s_4_9, -1, 1, 0}, +/* 10 */ { 2, s_4_10, -1, 2, 0}, +/* 11 */ { 3, s_4_11, 10, 1, 0}, +/* 12 */ { 4, s_4_12, 10, 2, 0}, +/* 13 */ { 3, s_4_13, 10, 1, 0}, +/* 14 */ { 3, s_4_14, 10, 1, 0}, +/* 15 */ { 4, s_4_15, 10, 1, 0}, +/* 16 */ { 5, s_4_16, -1, 1, 0}, +/* 17 */ { 6, s_4_17, -1, 1, 0}, +/* 18 */ { 3, s_4_18, -1, 1, 0}, +/* 19 */ { 2, s_4_19, -1, 1, 0}, +/* 20 */ { 3, s_4_20, 19, 1, 0}, +/* 21 */ { 3, s_4_21, 19, 1, 0}, +/* 22 */ { 3, s_4_22, -1, 2, 0}, +/* 23 */ { 5, s_4_23, -1, 1, 0}, +/* 24 */ { 6, s_4_24, -1, 1, 0}, +/* 25 */ { 2, s_4_25, -1, 1, 0}, +/* 26 */ { 3, s_4_26, -1, 1, 0}, +/* 27 */ { 4, s_4_27, -1, 1, 0}, +/* 28 */ { 5, s_4_28, -1, 2, 0}, +/* 29 */ { 6, s_4_29, 28, 1, 0}, +/* 30 */ { 7, s_4_30, 28, 2, 0}, +/* 31 */ { 6, s_4_31, 28, 1, 0}, +/* 32 */ { 6, s_4_32, 28, 1, 0}, +/* 33 */ { 7, s_4_33, 28, 1, 0}, +/* 34 */ { 4, s_4_34, -1, 1, 0}, +/* 35 */ { 4, s_4_35, -1, 1, 0}, +/* 36 */ { 5, s_4_36, -1, 1, 0}, +/* 37 */ { 3, s_4_37, -1, 1, 0}, +/* 38 */ { 4, s_4_38, -1, 2, 0}, +/* 39 */ { 5, s_4_39, 38, 1, 0}, +/* 40 */ { 5, s_4_40, 38, 1, 0}, +/* 41 */ { 4, s_4_41, -1, 2, 0}, +/* 42 */ { 4, s_4_42, -1, 2, 0}, +/* 43 */ { 7, s_4_43, -1, 1, 0}, +/* 44 */ { 8, s_4_44, -1, 2, 0}, +/* 45 */ { 9, s_4_45, 44, 1, 0}, +/* 46 */ { 10, s_4_46, 44, 2, 0}, +/* 47 */ { 9, s_4_47, 44, 1, 0}, +/* 48 */ { 9, s_4_48, 44, 1, 0}, +/* 49 */ { 10, s_4_49, 44, 1, 0}, +/* 50 */ { 7, s_4_50, -1, 1, 0}, +/* 51 */ { 7, s_4_51, -1, 1, 0}, +/* 52 */ { 8, s_4_52, -1, 1, 0}, +/* 53 */ { 5, s_4_53, -1, 2, 0}, +/* 54 */ { 2, s_4_54, -1, 1, 0}, +/* 55 */ { 3, s_4_55, 54, 1, 0}, +/* 56 */ { 3, s_4_56, 54, 1, 0}, +/* 57 */ { 2, s_4_57, -1, 2, 0}, +/* 58 */ { 4, s_4_58, 57, 1, 0}, +/* 59 */ { 5, s_4_59, 57, 2, 0}, +/* 60 */ { 4, s_4_60, 57, 1, 0}, +/* 61 */ { 4, s_4_61, 57, 1, 0}, +/* 62 */ { 5, s_4_62, 57, 1, 0}, +/* 63 */ { 2, s_4_63, -1, 2, 0}, +/* 64 */ { 3, s_4_64, -1, 2, 0}, +/* 65 */ { 5, s_4_65, 64, 1, 0}, +/* 66 */ { 6, s_4_66, 64, 2, 0}, +/* 67 */ { 7, s_4_67, 66, 1, 0}, +/* 68 */ { 8, s_4_68, 66, 2, 0}, +/* 69 */ { 7, s_4_69, 66, 1, 0}, +/* 70 */ { 7, s_4_70, 66, 1, 0}, +/* 71 */ { 8, s_4_71, 66, 1, 0}, +/* 72 */ { 5, s_4_72, 64, 1, 0}, +/* 73 */ { 5, s_4_73, 64, 1, 0}, +/* 74 */ { 6, s_4_74, 64, 1, 0}, +/* 75 */ { 3, s_4_75, -1, 2, 0}, +/* 76 */ { 2, s_4_76, -1, 1, 0}, +/* 77 */ { 3, s_4_77, 76, 1, 0}, +/* 78 */ { 3, s_4_78, 76, 1, 0}, +/* 79 */ { 4, s_4_79, -1, 1, 0}, +/* 80 */ { 5, s_4_80, -1, 1, 0}, +/* 81 */ { 2, s_4_81, -1, 1, 0}, +/* 82 */ { 6, s_4_82, -1, 1, 0}, +/* 83 */ { 4, s_4_83, -1, 1, 0}, +/* 84 */ { 5, s_4_84, -1, 2, 0}, +/* 85 */ { 6, s_4_85, 84, 1, 0}, +/* 86 */ { 7, s_4_86, 84, 2, 0}, +/* 87 */ { 6, s_4_87, 84, 1, 0}, +/* 88 */ { 6, s_4_88, 84, 1, 0}, +/* 89 */ { 7, s_4_89, 84, 1, 0}, +/* 90 */ { 4, s_4_90, -1, 1, 0}, +/* 91 */ { 4, s_4_91, -1, 1, 0}, +/* 92 */ { 5, s_4_92, -1, 1, 0}, +/* 93 */ { 5, s_4_93, -1, 1, 0} +}; + +static const symbol s_5_0[1] = { 'a' }; +static const symbol s_5_1[1] = { 'e' }; +static const symbol s_5_2[2] = { 'i', 'e' }; +static const symbol s_5_3[1] = { 'i' }; +static const symbol s_5_4[2] = { 0xC4, 0x83 }; + +static const struct among a_5[5] = +{ +/* 0 */ { 1, s_5_0, -1, 1, 0}, +/* 1 */ { 1, s_5_1, -1, 1, 0}, +/* 2 */ { 2, s_5_2, 1, 1, 0}, +/* 3 */ { 1, s_5_3, -1, 1, 0}, +/* 4 */ { 2, s_5_4, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 }; + +static const symbol s_0[] = { 'U' }; +static const symbol s_1[] = { 'I' }; +static const symbol s_2[] = { 'i' }; +static const symbol s_3[] = { 'u' }; +static const symbol s_4[] = { 'a' }; +static const symbol s_5[] = { 'e' }; +static const symbol s_6[] = { 'i' }; +static const symbol s_7[] = { 'a', 'b' }; +static const symbol s_8[] = { 'i' }; +static const symbol s_9[] = { 'a', 't' }; +static const symbol s_10[] = { 'a', 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) { /* 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; /* grouping v, line 33 */ + z->bra = z->c; /* [, line 33 */ + { int c3 = z->c; /* or, line 33 */ + 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; /* 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 (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; /* grouping v, line 34 */ + { int ret = slice_from_s(z, 1, s_1); /* <-, line 34 */ + if (ret < 0) return ret; + } + } + lab2: + z->c = c2; + break; + lab1: + z->c = c2; + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* goto, line 32 */ + } + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +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; /* grouping v, line 45 */ + { int c3 = z->c; /* or, line 45 */ + 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; + z->c += ret; + } + goto lab3; + lab4: + z->c = c3; + 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; + z->c += ret; + } + } + lab3: + goto lab1; + lab2: + z->c = c2; + 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; /* 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; + z->c += ret; + } + goto lab5; + lab6: + z->c = c4; + 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 */ + } + } + lab5: + ; + } + lab1: + z->I[0] = z->c; /* setmark pV, line 48 */ + lab0: + z->c = c1; + } + { int c5 = z->c; /* do, line 50 */ + { /* gopast */ /* grouping v, line 51 */ + int ret = out_grouping_U(z, g_v, 97, 259, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 51 */ + int ret = in_grouping_U(z, g_v, 97, 259, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[1] = z->c; /* setmark p1, line 51 */ + { /* gopast */ /* grouping v, line 52 */ + int ret = out_grouping_U(z, g_v, 97, 259, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 52 */ + int ret = in_grouping_U(z, g_v, 97, 259, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[2] = z->c; /* setmark p2, line 52 */ + lab7: + z->c = c5; + } + return 1; +} + +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 /* 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) { /* among, line 58 */ + case 1: + { 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_3); /* <-, line 60 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (ret < 0) goto lab0; + z->c = ret; /* next, line 61 */ + } + break; + } + continue; + lab0: + z->c = c1; + 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 68 */ + return 1; +} + +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) { /* 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) { /* 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; /* 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); /* call R1, line 73 */ + if (ret <= 0) return ret; + } + 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_4); /* <-, line 77 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_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_7))) goto lab0; /* literal, line 83 */ + return 0; + lab0: + z->c = z->l - m1; + } + { 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_9); /* <-, line 85 */ + if (ret < 0) return ret; + } + break; + case 7: + { int ret = slice_from_s(z, 4, s_10); /* <-, line 87 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_combo_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + { 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); /* call R1, line 92 */ + if (ret <= 0) return ret; + } + switch (among_var) { /* among, line 93 */ + case 1: + { 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_12); /* <-, line 104 */ + if (ret < 0) return ret; + } + break; + case 3: + { 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_14); /* <-, line 113 */ + if (ret < 0) return ret; + } + break; + case 5: + { 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_16); /* <-, line 122 */ + if (ret < 0) return ret; + } + break; + } + z->B[0] = 1; /* set standard_suffix_removed, line 125 */ + z->c = z->l - m_test1; + } + return 1; +} + +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); /* call combo_suffix, line 131 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + continue; + lab0: + z->c = z->l - m1; + break; + } + z->ket = z->c; /* [, line 132 */ + 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); /* call R2, line 132 */ + if (ret <= 0) return ret; + } + 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_17))) return 0; /* literal, line 152 */ + z->bra = z->c; /* ], 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_19); /* <-, line 156 */ + if (ret < 0) return ret; + } + break; + } + z->B[0] = 1; /* set standard_suffix_removed, line 160 */ + return 1; +} + +static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 164 */ + if (z->c < z->I[0]) return 0; + 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 = mlimit1; return 0; } + z->bra = z->c; /* ], line 165 */ + 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; /* non v, line 200 */ + goto lab0; + lab1: + z->c = z->l - m2; + 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 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 214 */ + if (ret < 0) return ret; + } + break; + } + z->lb = mlimit1; + } + return 1; +} + +static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 219 */ + if (!(find_among_b(z, a_5, 5))) return 0; /* substring, line 219 */ + z->bra = z->c; /* ], 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; + } + return 1; +} + +extern int romanian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, 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; + } + /* 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 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 - m2; + } + { 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 - m3; + } + { 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 - 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 - m4; + } + { 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 - m6; + } + z->c = z->lb; + { 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 = c7; + } + return 1; +} + +extern struct SN_env * romanian_UTF_8_create_env(void) { return SN_create_env(0, 3, 1); } + +extern void romanian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_russian.c b/src/backend/snowball/libstemmer/stem_UTF_8_russian.c new file mode 100644 index 0000000..5e5fd20 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_russian.c @@ -0,0 +1,685 @@ +/* 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 russian_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_tidy_up(struct SN_env * z); +static int r_derivational(struct SN_env * z); +static int r_noun(struct SN_env * z); +static int r_verb(struct SN_env * z); +static int r_reflexive(struct SN_env * z); +static int r_adjectival(struct SN_env * z); +static int r_adjective(struct SN_env * z); +static int r_perfective_gerund(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * russian_UTF_8_create_env(void); +extern void russian_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[10] = { 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C }; +static const symbol s_0_1[12] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C }; +static const symbol s_0_2[12] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C }; +static const symbol s_0_3[2] = { 0xD0, 0xB2 }; +static const symbol s_0_4[4] = { 0xD1, 0x8B, 0xD0, 0xB2 }; +static const symbol s_0_5[4] = { 0xD0, 0xB8, 0xD0, 0xB2 }; +static const symbol s_0_6[6] = { 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 }; +static const symbol s_0_7[8] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 }; +static const symbol s_0_8[8] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 }; + +static const struct among a_0[9] = +{ +/* 0 */ { 10, s_0_0, -1, 1, 0}, +/* 1 */ { 12, s_0_1, 0, 2, 0}, +/* 2 */ { 12, s_0_2, 0, 2, 0}, +/* 3 */ { 2, s_0_3, -1, 1, 0}, +/* 4 */ { 4, s_0_4, 3, 2, 0}, +/* 5 */ { 4, s_0_5, 3, 2, 0}, +/* 6 */ { 6, s_0_6, -1, 1, 0}, +/* 7 */ { 8, s_0_7, 6, 2, 0}, +/* 8 */ { 8, s_0_8, 6, 2, 0} +}; + +static const symbol s_1_0[6] = { 0xD0, 0xB5, 0xD0, 0xBC, 0xD1, 0x83 }; +static const symbol s_1_1[6] = { 0xD0, 0xBE, 0xD0, 0xBC, 0xD1, 0x83 }; +static const symbol s_1_2[4] = { 0xD1, 0x8B, 0xD1, 0x85 }; +static const symbol s_1_3[4] = { 0xD0, 0xB8, 0xD1, 0x85 }; +static const symbol s_1_4[4] = { 0xD1, 0x83, 0xD1, 0x8E }; +static const symbol s_1_5[4] = { 0xD1, 0x8E, 0xD1, 0x8E }; +static const symbol s_1_6[4] = { 0xD0, 0xB5, 0xD1, 0x8E }; +static const symbol s_1_7[4] = { 0xD0, 0xBE, 0xD1, 0x8E }; +static const symbol s_1_8[4] = { 0xD1, 0x8F, 0xD1, 0x8F }; +static const symbol s_1_9[4] = { 0xD0, 0xB0, 0xD1, 0x8F }; +static const symbol s_1_10[4] = { 0xD1, 0x8B, 0xD0, 0xB5 }; +static const symbol s_1_11[4] = { 0xD0, 0xB5, 0xD0, 0xB5 }; +static const symbol s_1_12[4] = { 0xD0, 0xB8, 0xD0, 0xB5 }; +static const symbol s_1_13[4] = { 0xD0, 0xBE, 0xD0, 0xB5 }; +static const symbol s_1_14[6] = { 0xD1, 0x8B, 0xD0, 0xBC, 0xD0, 0xB8 }; +static const symbol s_1_15[6] = { 0xD0, 0xB8, 0xD0, 0xBC, 0xD0, 0xB8 }; +static const symbol s_1_16[4] = { 0xD1, 0x8B, 0xD0, 0xB9 }; +static const symbol s_1_17[4] = { 0xD0, 0xB5, 0xD0, 0xB9 }; +static const symbol s_1_18[4] = { 0xD0, 0xB8, 0xD0, 0xB9 }; +static const symbol s_1_19[4] = { 0xD0, 0xBE, 0xD0, 0xB9 }; +static const symbol s_1_20[4] = { 0xD1, 0x8B, 0xD0, 0xBC }; +static const symbol s_1_21[4] = { 0xD0, 0xB5, 0xD0, 0xBC }; +static const symbol s_1_22[4] = { 0xD0, 0xB8, 0xD0, 0xBC }; +static const symbol s_1_23[4] = { 0xD0, 0xBE, 0xD0, 0xBC }; +static const symbol s_1_24[6] = { 0xD0, 0xB5, 0xD0, 0xB3, 0xD0, 0xBE }; +static const symbol s_1_25[6] = { 0xD0, 0xBE, 0xD0, 0xB3, 0xD0, 0xBE }; + +static const struct among a_1[26] = +{ +/* 0 */ { 6, s_1_0, -1, 1, 0}, +/* 1 */ { 6, s_1_1, -1, 1, 0}, +/* 2 */ { 4, s_1_2, -1, 1, 0}, +/* 3 */ { 4, s_1_3, -1, 1, 0}, +/* 4 */ { 4, s_1_4, -1, 1, 0}, +/* 5 */ { 4, s_1_5, -1, 1, 0}, +/* 6 */ { 4, s_1_6, -1, 1, 0}, +/* 7 */ { 4, s_1_7, -1, 1, 0}, +/* 8 */ { 4, s_1_8, -1, 1, 0}, +/* 9 */ { 4, s_1_9, -1, 1, 0}, +/* 10 */ { 4, s_1_10, -1, 1, 0}, +/* 11 */ { 4, s_1_11, -1, 1, 0}, +/* 12 */ { 4, s_1_12, -1, 1, 0}, +/* 13 */ { 4, s_1_13, -1, 1, 0}, +/* 14 */ { 6, s_1_14, -1, 1, 0}, +/* 15 */ { 6, s_1_15, -1, 1, 0}, +/* 16 */ { 4, s_1_16, -1, 1, 0}, +/* 17 */ { 4, s_1_17, -1, 1, 0}, +/* 18 */ { 4, s_1_18, -1, 1, 0}, +/* 19 */ { 4, s_1_19, -1, 1, 0}, +/* 20 */ { 4, s_1_20, -1, 1, 0}, +/* 21 */ { 4, s_1_21, -1, 1, 0}, +/* 22 */ { 4, s_1_22, -1, 1, 0}, +/* 23 */ { 4, s_1_23, -1, 1, 0}, +/* 24 */ { 6, s_1_24, -1, 1, 0}, +/* 25 */ { 6, s_1_25, -1, 1, 0} +}; + +static const symbol s_2_0[4] = { 0xD0, 0xB2, 0xD1, 0x88 }; +static const symbol s_2_1[6] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88 }; +static const symbol s_2_2[6] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88 }; +static const symbol s_2_3[2] = { 0xD1, 0x89 }; +static const symbol s_2_4[4] = { 0xD1, 0x8E, 0xD1, 0x89 }; +static const symbol s_2_5[6] = { 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x89 }; +static const symbol s_2_6[4] = { 0xD0, 0xB5, 0xD0, 0xBC }; +static const symbol s_2_7[4] = { 0xD0, 0xBD, 0xD0, 0xBD }; + +static const struct among a_2[8] = +{ +/* 0 */ { 4, s_2_0, -1, 1, 0}, +/* 1 */ { 6, s_2_1, 0, 2, 0}, +/* 2 */ { 6, s_2_2, 0, 2, 0}, +/* 3 */ { 2, s_2_3, -1, 1, 0}, +/* 4 */ { 4, s_2_4, 3, 1, 0}, +/* 5 */ { 6, s_2_5, 4, 2, 0}, +/* 6 */ { 4, s_2_6, -1, 1, 0}, +/* 7 */ { 4, s_2_7, -1, 1, 0} +}; + +static const symbol s_3_0[4] = { 0xD1, 0x81, 0xD1, 0x8C }; +static const symbol s_3_1[4] = { 0xD1, 0x81, 0xD1, 0x8F }; + +static const struct among a_3[2] = +{ +/* 0 */ { 4, s_3_0, -1, 1, 0}, +/* 1 */ { 4, s_3_1, -1, 1, 0} +}; + +static const symbol s_4_0[4] = { 0xD1, 0x8B, 0xD1, 0x82 }; +static const symbol s_4_1[4] = { 0xD1, 0x8E, 0xD1, 0x82 }; +static const symbol s_4_2[6] = { 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x82 }; +static const symbol s_4_3[4] = { 0xD1, 0x8F, 0xD1, 0x82 }; +static const symbol s_4_4[4] = { 0xD0, 0xB5, 0xD1, 0x82 }; +static const symbol s_4_5[6] = { 0xD1, 0x83, 0xD0, 0xB5, 0xD1, 0x82 }; +static const symbol s_4_6[4] = { 0xD0, 0xB8, 0xD1, 0x82 }; +static const symbol s_4_7[4] = { 0xD0, 0xBD, 0xD1, 0x8B }; +static const symbol s_4_8[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD1, 0x8B }; +static const symbol s_4_9[4] = { 0xD1, 0x82, 0xD1, 0x8C }; +static const symbol s_4_10[6] = { 0xD1, 0x8B, 0xD1, 0x82, 0xD1, 0x8C }; +static const symbol s_4_11[6] = { 0xD0, 0xB8, 0xD1, 0x82, 0xD1, 0x8C }; +static const symbol s_4_12[6] = { 0xD0, 0xB5, 0xD1, 0x88, 0xD1, 0x8C }; +static const symbol s_4_13[6] = { 0xD0, 0xB8, 0xD1, 0x88, 0xD1, 0x8C }; +static const symbol s_4_14[2] = { 0xD1, 0x8E }; +static const symbol s_4_15[4] = { 0xD1, 0x83, 0xD1, 0x8E }; +static const symbol s_4_16[4] = { 0xD0, 0xBB, 0xD0, 0xB0 }; +static const symbol s_4_17[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB0 }; +static const symbol s_4_18[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB0 }; +static const symbol s_4_19[4] = { 0xD0, 0xBD, 0xD0, 0xB0 }; +static const symbol s_4_20[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xB0 }; +static const symbol s_4_21[6] = { 0xD0, 0xB5, 0xD1, 0x82, 0xD0, 0xB5 }; +static const symbol s_4_22[6] = { 0xD0, 0xB8, 0xD1, 0x82, 0xD0, 0xB5 }; +static const symbol s_4_23[6] = { 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 }; +static const symbol s_4_24[8] = { 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 }; +static const symbol s_4_25[8] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 }; +static const symbol s_4_26[4] = { 0xD0, 0xBB, 0xD0, 0xB8 }; +static const symbol s_4_27[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB8 }; +static const symbol s_4_28[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB8 }; +static const symbol s_4_29[2] = { 0xD0, 0xB9 }; +static const symbol s_4_30[4] = { 0xD1, 0x83, 0xD0, 0xB9 }; +static const symbol s_4_31[4] = { 0xD0, 0xB5, 0xD0, 0xB9 }; +static const symbol s_4_32[2] = { 0xD0, 0xBB }; +static const symbol s_4_33[4] = { 0xD1, 0x8B, 0xD0, 0xBB }; +static const symbol s_4_34[4] = { 0xD0, 0xB8, 0xD0, 0xBB }; +static const symbol s_4_35[4] = { 0xD1, 0x8B, 0xD0, 0xBC }; +static const symbol s_4_36[4] = { 0xD0, 0xB5, 0xD0, 0xBC }; +static const symbol s_4_37[4] = { 0xD0, 0xB8, 0xD0, 0xBC }; +static const symbol s_4_38[2] = { 0xD0, 0xBD }; +static const symbol s_4_39[4] = { 0xD0, 0xB5, 0xD0, 0xBD }; +static const symbol s_4_40[4] = { 0xD0, 0xBB, 0xD0, 0xBE }; +static const symbol s_4_41[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xBE }; +static const symbol s_4_42[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xBE }; +static const symbol s_4_43[4] = { 0xD0, 0xBD, 0xD0, 0xBE }; +static const symbol s_4_44[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xBE }; +static const symbol s_4_45[6] = { 0xD0, 0xBD, 0xD0, 0xBD, 0xD0, 0xBE }; + +static const struct among a_4[46] = +{ +/* 0 */ { 4, s_4_0, -1, 2, 0}, +/* 1 */ { 4, s_4_1, -1, 1, 0}, +/* 2 */ { 6, s_4_2, 1, 2, 0}, +/* 3 */ { 4, s_4_3, -1, 2, 0}, +/* 4 */ { 4, s_4_4, -1, 1, 0}, +/* 5 */ { 6, s_4_5, 4, 2, 0}, +/* 6 */ { 4, s_4_6, -1, 2, 0}, +/* 7 */ { 4, s_4_7, -1, 1, 0}, +/* 8 */ { 6, s_4_8, 7, 2, 0}, +/* 9 */ { 4, s_4_9, -1, 1, 0}, +/* 10 */ { 6, s_4_10, 9, 2, 0}, +/* 11 */ { 6, s_4_11, 9, 2, 0}, +/* 12 */ { 6, s_4_12, -1, 1, 0}, +/* 13 */ { 6, s_4_13, -1, 2, 0}, +/* 14 */ { 2, s_4_14, -1, 2, 0}, +/* 15 */ { 4, s_4_15, 14, 2, 0}, +/* 16 */ { 4, s_4_16, -1, 1, 0}, +/* 17 */ { 6, s_4_17, 16, 2, 0}, +/* 18 */ { 6, s_4_18, 16, 2, 0}, +/* 19 */ { 4, s_4_19, -1, 1, 0}, +/* 20 */ { 6, s_4_20, 19, 2, 0}, +/* 21 */ { 6, s_4_21, -1, 1, 0}, +/* 22 */ { 6, s_4_22, -1, 2, 0}, +/* 23 */ { 6, s_4_23, -1, 1, 0}, +/* 24 */ { 8, s_4_24, 23, 2, 0}, +/* 25 */ { 8, s_4_25, 23, 2, 0}, +/* 26 */ { 4, s_4_26, -1, 1, 0}, +/* 27 */ { 6, s_4_27, 26, 2, 0}, +/* 28 */ { 6, s_4_28, 26, 2, 0}, +/* 29 */ { 2, s_4_29, -1, 1, 0}, +/* 30 */ { 4, s_4_30, 29, 2, 0}, +/* 31 */ { 4, s_4_31, 29, 2, 0}, +/* 32 */ { 2, s_4_32, -1, 1, 0}, +/* 33 */ { 4, s_4_33, 32, 2, 0}, +/* 34 */ { 4, s_4_34, 32, 2, 0}, +/* 35 */ { 4, s_4_35, -1, 2, 0}, +/* 36 */ { 4, s_4_36, -1, 1, 0}, +/* 37 */ { 4, s_4_37, -1, 2, 0}, +/* 38 */ { 2, s_4_38, -1, 1, 0}, +/* 39 */ { 4, s_4_39, 38, 2, 0}, +/* 40 */ { 4, s_4_40, -1, 1, 0}, +/* 41 */ { 6, s_4_41, 40, 2, 0}, +/* 42 */ { 6, s_4_42, 40, 2, 0}, +/* 43 */ { 4, s_4_43, -1, 1, 0}, +/* 44 */ { 6, s_4_44, 43, 2, 0}, +/* 45 */ { 6, s_4_45, 43, 1, 0} +}; + +static const symbol s_5_0[2] = { 0xD1, 0x83 }; +static const symbol s_5_1[4] = { 0xD1, 0x8F, 0xD1, 0x85 }; +static const symbol s_5_2[6] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD1, 0x85 }; +static const symbol s_5_3[4] = { 0xD0, 0xB0, 0xD1, 0x85 }; +static const symbol s_5_4[2] = { 0xD1, 0x8B }; +static const symbol s_5_5[2] = { 0xD1, 0x8C }; +static const symbol s_5_6[2] = { 0xD1, 0x8E }; +static const symbol s_5_7[4] = { 0xD1, 0x8C, 0xD1, 0x8E }; +static const symbol s_5_8[4] = { 0xD0, 0xB8, 0xD1, 0x8E }; +static const symbol s_5_9[2] = { 0xD1, 0x8F }; +static const symbol s_5_10[4] = { 0xD1, 0x8C, 0xD1, 0x8F }; +static const symbol s_5_11[4] = { 0xD0, 0xB8, 0xD1, 0x8F }; +static const symbol s_5_12[2] = { 0xD0, 0xB0 }; +static const symbol s_5_13[4] = { 0xD0, 0xB5, 0xD0, 0xB2 }; +static const symbol s_5_14[4] = { 0xD0, 0xBE, 0xD0, 0xB2 }; +static const symbol s_5_15[2] = { 0xD0, 0xB5 }; +static const symbol s_5_16[4] = { 0xD1, 0x8C, 0xD0, 0xB5 }; +static const symbol s_5_17[4] = { 0xD0, 0xB8, 0xD0, 0xB5 }; +static const symbol s_5_18[2] = { 0xD0, 0xB8 }; +static const symbol s_5_19[4] = { 0xD0, 0xB5, 0xD0, 0xB8 }; +static const symbol s_5_20[4] = { 0xD0, 0xB8, 0xD0, 0xB8 }; +static const symbol s_5_21[6] = { 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8 }; +static const symbol s_5_22[8] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8 }; +static const symbol s_5_23[6] = { 0xD0, 0xB0, 0xD0, 0xBC, 0xD0, 0xB8 }; +static const symbol s_5_24[2] = { 0xD0, 0xB9 }; +static const symbol s_5_25[4] = { 0xD0, 0xB5, 0xD0, 0xB9 }; +static const symbol s_5_26[6] = { 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xB9 }; +static const symbol s_5_27[4] = { 0xD0, 0xB8, 0xD0, 0xB9 }; +static const symbol s_5_28[4] = { 0xD0, 0xBE, 0xD0, 0xB9 }; +static const symbol s_5_29[4] = { 0xD1, 0x8F, 0xD0, 0xBC }; +static const symbol s_5_30[6] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC }; +static const symbol s_5_31[4] = { 0xD0, 0xB0, 0xD0, 0xBC }; +static const symbol s_5_32[4] = { 0xD0, 0xB5, 0xD0, 0xBC }; +static const symbol s_5_33[6] = { 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xBC }; +static const symbol s_5_34[4] = { 0xD0, 0xBE, 0xD0, 0xBC }; +static const symbol s_5_35[2] = { 0xD0, 0xBE }; + +static const struct among a_5[36] = +{ +/* 0 */ { 2, s_5_0, -1, 1, 0}, +/* 1 */ { 4, s_5_1, -1, 1, 0}, +/* 2 */ { 6, s_5_2, 1, 1, 0}, +/* 3 */ { 4, s_5_3, -1, 1, 0}, +/* 4 */ { 2, s_5_4, -1, 1, 0}, +/* 5 */ { 2, s_5_5, -1, 1, 0}, +/* 6 */ { 2, s_5_6, -1, 1, 0}, +/* 7 */ { 4, s_5_7, 6, 1, 0}, +/* 8 */ { 4, s_5_8, 6, 1, 0}, +/* 9 */ { 2, s_5_9, -1, 1, 0}, +/* 10 */ { 4, s_5_10, 9, 1, 0}, +/* 11 */ { 4, s_5_11, 9, 1, 0}, +/* 12 */ { 2, s_5_12, -1, 1, 0}, +/* 13 */ { 4, s_5_13, -1, 1, 0}, +/* 14 */ { 4, s_5_14, -1, 1, 0}, +/* 15 */ { 2, s_5_15, -1, 1, 0}, +/* 16 */ { 4, s_5_16, 15, 1, 0}, +/* 17 */ { 4, s_5_17, 15, 1, 0}, +/* 18 */ { 2, s_5_18, -1, 1, 0}, +/* 19 */ { 4, s_5_19, 18, 1, 0}, +/* 20 */ { 4, s_5_20, 18, 1, 0}, +/* 21 */ { 6, s_5_21, 18, 1, 0}, +/* 22 */ { 8, s_5_22, 21, 1, 0}, +/* 23 */ { 6, s_5_23, 18, 1, 0}, +/* 24 */ { 2, s_5_24, -1, 1, 0}, +/* 25 */ { 4, s_5_25, 24, 1, 0}, +/* 26 */ { 6, s_5_26, 25, 1, 0}, +/* 27 */ { 4, s_5_27, 24, 1, 0}, +/* 28 */ { 4, s_5_28, 24, 1, 0}, +/* 29 */ { 4, s_5_29, -1, 1, 0}, +/* 30 */ { 6, s_5_30, 29, 1, 0}, +/* 31 */ { 4, s_5_31, -1, 1, 0}, +/* 32 */ { 4, s_5_32, -1, 1, 0}, +/* 33 */ { 6, s_5_33, 32, 1, 0}, +/* 34 */ { 4, s_5_34, -1, 1, 0}, +/* 35 */ { 2, s_5_35, -1, 1, 0} +}; + +static const symbol s_6_0[6] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82 }; +static const symbol s_6_1[8] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82, 0xD1, 0x8C }; + +static const struct among a_6[2] = +{ +/* 0 */ { 6, s_6_0, -1, 1, 0}, +/* 1 */ { 8, s_6_1, -1, 1, 0} +}; + +static const symbol s_7_0[6] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88 }; +static const symbol s_7_1[2] = { 0xD1, 0x8C }; +static const symbol s_7_2[8] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88, 0xD0, 0xB5 }; +static const symbol s_7_3[2] = { 0xD0, 0xBD }; + +static const struct among a_7[4] = +{ +/* 0 */ { 6, s_7_0, -1, 1, 0}, +/* 1 */ { 2, s_7_1, -1, 3, 0}, +/* 2 */ { 8, s_7_2, -1, 1, 0}, +/* 3 */ { 2, s_7_3, -1, 2, 0} +}; + +static const unsigned char g_v[] = { 33, 65, 8, 232 }; + +static const symbol s_0[] = { 0xD0, 0xB0 }; +static const symbol s_1[] = { 0xD1, 0x8F }; +static const symbol s_2[] = { 0xD0, 0xB0 }; +static const symbol s_3[] = { 0xD1, 0x8F }; +static const symbol s_4[] = { 0xD0, 0xB0 }; +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[] = { 0xD1, 0x91 }; +static const symbol s_10[] = { 0xD0, 0xB5 }; +static const symbol s_11[] = { 0xD0, 0xB8 }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $pV = <integer expression>, line 61 */ + z->I[1] = z->l; /* $p2 = <integer expression>, line 62 */ + { int c1 = z->c; /* do, line 63 */ + { /* gopast */ /* grouping v, line 64 */ + int ret = out_grouping_U(z, g_v, 1072, 1103, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + z->I[0] = z->c; /* setmark pV, line 64 */ + { /* gopast */ /* non v, line 64 */ + int ret = in_grouping_U(z, g_v, 1072, 1103, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + { /* gopast */ /* grouping v, line 65 */ + int ret = out_grouping_U(z, g_v, 1072, 1103, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + { /* gopast */ /* non v, line 65 */ + int ret = in_grouping_U(z, g_v, 1072, 1103, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + z->I[1] = z->c; /* setmark p2, line 65 */ + lab0: + z->c = c1; + } + return 1; +} + +static int r_R2(struct SN_env * z) { /* backwardmode */ + if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 71 */ + return 1; +} + +static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */ + int among_var; + 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 74 */ + switch (among_var) { /* among, line 74 */ + case 1: + { int m1 = z->l - z->c; (void)m1; /* or, line 78 */ + if (!(eq_s_b(z, 2, s_0))) goto lab1; /* literal, line 78 */ + goto lab0; + lab1: + z->c = z->l - m1; + if (!(eq_s_b(z, 2, s_1))) return 0; /* literal, line 78 */ + } + lab0: + { int ret = slice_del(z); /* delete, line 78 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 85 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_adjective(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 90 */ + if (!(find_among_b(z, a_1, 26))) return 0; /* substring, line 90 */ + z->bra = z->c; /* ], line 90 */ + { int ret = slice_del(z); /* delete, line 99 */ + if (ret < 0) return ret; + } + 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 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 - 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 117 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 124 */ + if (ret < 0) return ret; + } + break; + } + lab0: + ; + } + return 1; +} + +static int r_reflexive(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 131 */ + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0; /* substring, line 131 */ + 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) { /* backwardmode */ + int among_var; + 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 139 */ + switch (among_var) { /* among, line 139 */ + case 1: + { int m1 = z->l - z->c; (void)m1; /* or, line 145 */ + if (!(eq_s_b(z, 2, s_4))) goto lab1; /* literal, line 145 */ + goto lab0; + lab1: + z->c = z->l - m1; + if (!(eq_s_b(z, 2, s_5))) return 0; /* literal, line 145 */ + } + lab0: + { int ret = slice_del(z); /* delete, line 145 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 153 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_noun(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 162 */ + if (!(find_among_b(z, a_5, 36))) return 0; /* substring, line 162 */ + z->bra = z->c; /* ], line 162 */ + { int ret = slice_del(z); /* delete, line 169 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_derivational(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 178 */ + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0; /* substring, line 178 */ + 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) { /* backwardmode */ + int among_var; + 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 186 */ + 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, 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; /* 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) { /* 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; + } + z->c = c1; + } + /* 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 mlimit4; /* setlimit, line 208 */ + if (z->c < z->I[0]) return 0; + mlimit4 = z->lb; z->lb = z->I[0]; + { int m5 = z->l - z->c; (void)m5; /* do, line 209 */ + { int m6 = z->l - z->c; (void)m6; /* or, line 210 */ + { int ret = r_perfective_gerund(z); /* call perfective_gerund, line 210 */ + if (ret == 0) goto lab6; + if (ret < 0) return ret; + } + 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; + } + lab7: + ; + } + { 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 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 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; + } + } + lab8: + ; + } + lab5: + lab4: + z->c = z->l - m5; + } + { int m9 = z->l - z->c; (void)m9; /* try, line 215 */ + z->ket = z->c; /* [, line 215 */ + if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m9; goto lab11; } /* literal, line 215 */ + z->bra = z->c; /* ], line 215 */ + { int ret = slice_del(z); /* delete, line 215 */ + if (ret < 0) return ret; + } + lab11: + ; + } + { 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; + } + lab12: + z->c = z->l - m10; + } + { int m11 = z->l - z->c; (void)m11; /* do, line 219 */ + { int ret = r_tidy_up(z); /* call tidy_up, line 219 */ + if (ret == 0) goto lab13; + if (ret < 0) return ret; + } + lab13: + z->c = z->l - m11; + } + z->lb = mlimit4; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * russian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); } + +extern void russian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_spanish.c b/src/backend/snowball/libstemmer/stem_UTF_8_spanish.c new file mode 100644 index 0000000..a3755d4 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_spanish.c @@ -0,0 +1,1054 @@ +/* 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 spanish_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_residual_suffix(struct SN_env * z); +static int r_verb_suffix(struct SN_env * z); +static int r_y_verb_suffix(struct SN_env * z); +static int r_standard_suffix(struct SN_env * z); +static int r_attached_pronoun(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_RV(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_postlude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * spanish_UTF_8_create_env(void); +extern void spanish_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_1[2] = { 0xC3, 0xA1 }; +static const symbol s_0_2[2] = { 0xC3, 0xA9 }; +static const symbol s_0_3[2] = { 0xC3, 0xAD }; +static const symbol s_0_4[2] = { 0xC3, 0xB3 }; +static const symbol s_0_5[2] = { 0xC3, 0xBA }; + +static const struct among a_0[6] = +{ +/* 0 */ { 0, 0, -1, 6, 0}, +/* 1 */ { 2, s_0_1, 0, 1, 0}, +/* 2 */ { 2, s_0_2, 0, 2, 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} +}; + +static const symbol s_1_0[2] = { 'l', 'a' }; +static const symbol s_1_1[4] = { 's', 'e', 'l', 'a' }; +static const symbol s_1_2[2] = { 'l', 'e' }; +static const symbol s_1_3[2] = { 'm', 'e' }; +static const symbol s_1_4[2] = { 's', 'e' }; +static const symbol s_1_5[2] = { 'l', 'o' }; +static const symbol s_1_6[4] = { 's', 'e', 'l', 'o' }; +static const symbol s_1_7[3] = { 'l', 'a', 's' }; +static const symbol s_1_8[5] = { 's', 'e', 'l', 'a', 's' }; +static const symbol s_1_9[3] = { 'l', 'e', 's' }; +static const symbol s_1_10[3] = { 'l', 'o', 's' }; +static const symbol s_1_11[5] = { 's', 'e', 'l', 'o', 's' }; +static const symbol s_1_12[3] = { 'n', 'o', 's' }; + +static const struct among a_1[13] = +{ +/* 0 */ { 2, s_1_0, -1, -1, 0}, +/* 1 */ { 4, s_1_1, 0, -1, 0}, +/* 2 */ { 2, s_1_2, -1, -1, 0}, +/* 3 */ { 2, s_1_3, -1, -1, 0}, +/* 4 */ { 2, s_1_4, -1, -1, 0}, +/* 5 */ { 2, s_1_5, -1, -1, 0}, +/* 6 */ { 4, s_1_6, 5, -1, 0}, +/* 7 */ { 3, s_1_7, -1, -1, 0}, +/* 8 */ { 5, s_1_8, 7, -1, 0}, +/* 9 */ { 3, s_1_9, -1, -1, 0}, +/* 10 */ { 3, s_1_10, -1, -1, 0}, +/* 11 */ { 5, s_1_11, 10, -1, 0}, +/* 12 */ { 3, s_1_12, -1, -1, 0} +}; + +static const symbol s_2_0[4] = { 'a', 'n', 'd', 'o' }; +static const symbol s_2_1[5] = { 'i', 'e', 'n', 'd', 'o' }; +static const symbol s_2_2[5] = { 'y', 'e', 'n', 'd', 'o' }; +static const symbol s_2_3[5] = { 0xC3, 0xA1, 'n', 'd', 'o' }; +static const symbol s_2_4[6] = { 'i', 0xC3, 0xA9, 'n', 'd', 'o' }; +static const symbol s_2_5[2] = { 'a', 'r' }; +static const symbol s_2_6[2] = { 'e', 'r' }; +static const symbol s_2_7[2] = { 'i', 'r' }; +static const symbol s_2_8[3] = { 0xC3, 0xA1, 'r' }; +static const symbol s_2_9[3] = { 0xC3, 0xA9, 'r' }; +static const symbol s_2_10[3] = { 0xC3, 0xAD, 'r' }; + +static const struct among a_2[11] = +{ +/* 0 */ { 4, s_2_0, -1, 6, 0}, +/* 1 */ { 5, s_2_1, -1, 6, 0}, +/* 2 */ { 5, s_2_2, -1, 7, 0}, +/* 3 */ { 5, s_2_3, -1, 2, 0}, +/* 4 */ { 6, s_2_4, -1, 1, 0}, +/* 5 */ { 2, s_2_5, -1, 6, 0}, +/* 6 */ { 2, s_2_6, -1, 6, 0}, +/* 7 */ { 2, s_2_7, -1, 6, 0}, +/* 8 */ { 3, s_2_8, -1, 3, 0}, +/* 9 */ { 3, s_2_9, -1, 4, 0}, +/* 10 */ { 3, s_2_10, -1, 5, 0} +}; + +static const symbol s_3_0[2] = { 'i', 'c' }; +static const symbol s_3_1[2] = { 'a', 'd' }; +static const symbol s_3_2[2] = { 'o', 's' }; +static const symbol s_3_3[2] = { 'i', 'v' }; + +static const struct among a_3[4] = +{ +/* 0 */ { 2, s_3_0, -1, -1, 0}, +/* 1 */ { 2, s_3_1, -1, -1, 0}, +/* 2 */ { 2, s_3_2, -1, -1, 0}, +/* 3 */ { 2, s_3_3, -1, 1, 0} +}; + +static const symbol s_4_0[4] = { 'a', 'b', 'l', 'e' }; +static const symbol s_4_1[4] = { 'i', 'b', 'l', 'e' }; +static const symbol s_4_2[4] = { 'a', 'n', 't', 'e' }; + +static const struct among a_4[3] = +{ +/* 0 */ { 4, s_4_0, -1, 1, 0}, +/* 1 */ { 4, s_4_1, -1, 1, 0}, +/* 2 */ { 4, s_4_2, -1, 1, 0} +}; + +static const symbol s_5_0[2] = { 'i', 'c' }; +static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' }; +static const symbol s_5_2[2] = { 'i', 'v' }; + +static const struct among a_5[3] = +{ +/* 0 */ { 2, s_5_0, -1, 1, 0}, +/* 1 */ { 4, s_5_1, -1, 1, 0}, +/* 2 */ { 2, s_5_2, -1, 1, 0} +}; + +static const symbol s_6_0[3] = { 'i', 'c', 'a' }; +static const symbol s_6_1[5] = { 'a', 'n', 'c', 'i', 'a' }; +static const symbol s_6_2[5] = { 'e', 'n', 'c', 'i', 'a' }; +static const symbol s_6_3[5] = { 'a', 'd', 'o', 'r', 'a' }; +static const symbol s_6_4[3] = { 'o', 's', 'a' }; +static const symbol s_6_5[4] = { 'i', 's', 't', 'a' }; +static const symbol s_6_6[3] = { 'i', 'v', 'a' }; +static const symbol s_6_7[4] = { 'a', 'n', 'z', 'a' }; +static const symbol s_6_8[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' }; +static const symbol s_6_9[4] = { 'i', 'd', 'a', 'd' }; +static const symbol s_6_10[4] = { 'a', 'b', 'l', 'e' }; +static const symbol s_6_11[4] = { 'i', 'b', 'l', 'e' }; +static const symbol s_6_12[4] = { 'a', 'n', 't', 'e' }; +static const symbol s_6_13[5] = { 'm', 'e', 'n', 't', 'e' }; +static const symbol s_6_14[6] = { 'a', 'm', 'e', 'n', 't', 'e' }; +static const symbol s_6_15[6] = { 'a', 'c', 'i', 0xC3, 0xB3, 'n' }; +static const symbol s_6_16[6] = { 'u', 'c', 'i', 0xC3, 0xB3, 'n' }; +static const symbol s_6_17[3] = { 'i', 'c', 'o' }; +static const symbol s_6_18[4] = { 'i', 's', 'm', 'o' }; +static const symbol s_6_19[3] = { 'o', 's', 'o' }; +static const symbol s_6_20[7] = { 'a', 'm', 'i', 'e', 'n', 't', 'o' }; +static const symbol s_6_21[7] = { 'i', 'm', 'i', 'e', 'n', 't', 'o' }; +static const symbol s_6_22[3] = { 'i', 'v', 'o' }; +static const symbol s_6_23[4] = { 'a', 'd', 'o', 'r' }; +static const symbol s_6_24[4] = { 'i', 'c', 'a', 's' }; +static const symbol s_6_25[6] = { 'a', 'n', 'c', 'i', 'a', 's' }; +static const symbol s_6_26[6] = { 'e', 'n', 'c', 'i', 'a', 's' }; +static const symbol s_6_27[6] = { 'a', 'd', 'o', 'r', 'a', 's' }; +static const symbol s_6_28[4] = { 'o', 's', 'a', 's' }; +static const symbol s_6_29[5] = { 'i', 's', 't', 'a', 's' }; +static const symbol s_6_30[4] = { 'i', 'v', 'a', 's' }; +static const symbol s_6_31[5] = { 'a', 'n', 'z', 'a', 's' }; +static const symbol s_6_32[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's' }; +static const symbol s_6_33[6] = { 'i', 'd', 'a', 'd', 'e', 's' }; +static const symbol s_6_34[5] = { 'a', 'b', 'l', 'e', 's' }; +static const symbol s_6_35[5] = { 'i', 'b', 'l', 'e', 's' }; +static const symbol s_6_36[7] = { 'a', 'c', 'i', 'o', 'n', 'e', 's' }; +static const symbol s_6_37[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' }; +static const symbol s_6_38[6] = { 'a', 'd', 'o', 'r', 'e', 's' }; +static const symbol s_6_39[5] = { 'a', 'n', 't', 'e', 's' }; +static const symbol s_6_40[4] = { 'i', 'c', 'o', 's' }; +static const symbol s_6_41[5] = { 'i', 's', 'm', 'o', 's' }; +static const symbol s_6_42[4] = { 'o', 's', 'o', 's' }; +static const symbol s_6_43[8] = { 'a', 'm', 'i', 'e', 'n', 't', 'o', 's' }; +static const symbol s_6_44[8] = { 'i', 'm', 'i', 'e', 'n', 't', 'o', 's' }; +static const symbol s_6_45[4] = { 'i', 'v', 'o', 's' }; + +static const struct among a_6[46] = +{ +/* 0 */ { 3, s_6_0, -1, 1, 0}, +/* 1 */ { 5, s_6_1, -1, 2, 0}, +/* 2 */ { 5, s_6_2, -1, 5, 0}, +/* 3 */ { 5, s_6_3, -1, 2, 0}, +/* 4 */ { 3, s_6_4, -1, 1, 0}, +/* 5 */ { 4, s_6_5, -1, 1, 0}, +/* 6 */ { 3, s_6_6, -1, 9, 0}, +/* 7 */ { 4, s_6_7, -1, 1, 0}, +/* 8 */ { 6, s_6_8, -1, 3, 0}, +/* 9 */ { 4, s_6_9, -1, 8, 0}, +/* 10 */ { 4, s_6_10, -1, 1, 0}, +/* 11 */ { 4, s_6_11, -1, 1, 0}, +/* 12 */ { 4, s_6_12, -1, 2, 0}, +/* 13 */ { 5, s_6_13, -1, 7, 0}, +/* 14 */ { 6, s_6_14, 13, 6, 0}, +/* 15 */ { 6, s_6_15, -1, 2, 0}, +/* 16 */ { 6, s_6_16, -1, 4, 0}, +/* 17 */ { 3, s_6_17, -1, 1, 0}, +/* 18 */ { 4, s_6_18, -1, 1, 0}, +/* 19 */ { 3, s_6_19, -1, 1, 0}, +/* 20 */ { 7, s_6_20, -1, 1, 0}, +/* 21 */ { 7, s_6_21, -1, 1, 0}, +/* 22 */ { 3, s_6_22, -1, 9, 0}, +/* 23 */ { 4, s_6_23, -1, 2, 0}, +/* 24 */ { 4, s_6_24, -1, 1, 0}, +/* 25 */ { 6, s_6_25, -1, 2, 0}, +/* 26 */ { 6, s_6_26, -1, 5, 0}, +/* 27 */ { 6, s_6_27, -1, 2, 0}, +/* 28 */ { 4, s_6_28, -1, 1, 0}, +/* 29 */ { 5, s_6_29, -1, 1, 0}, +/* 30 */ { 4, s_6_30, -1, 9, 0}, +/* 31 */ { 5, s_6_31, -1, 1, 0}, +/* 32 */ { 7, s_6_32, -1, 3, 0}, +/* 33 */ { 6, s_6_33, -1, 8, 0}, +/* 34 */ { 5, s_6_34, -1, 1, 0}, +/* 35 */ { 5, s_6_35, -1, 1, 0}, +/* 36 */ { 7, s_6_36, -1, 2, 0}, +/* 37 */ { 7, s_6_37, -1, 4, 0}, +/* 38 */ { 6, s_6_38, -1, 2, 0}, +/* 39 */ { 5, s_6_39, -1, 2, 0}, +/* 40 */ { 4, s_6_40, -1, 1, 0}, +/* 41 */ { 5, s_6_41, -1, 1, 0}, +/* 42 */ { 4, s_6_42, -1, 1, 0}, +/* 43 */ { 8, s_6_43, -1, 1, 0}, +/* 44 */ { 8, s_6_44, -1, 1, 0}, +/* 45 */ { 4, s_6_45, -1, 9, 0} +}; + +static const symbol s_7_0[2] = { 'y', 'a' }; +static const symbol s_7_1[2] = { 'y', 'e' }; +static const symbol s_7_2[3] = { 'y', 'a', 'n' }; +static const symbol s_7_3[3] = { 'y', 'e', 'n' }; +static const symbol s_7_4[5] = { 'y', 'e', 'r', 'o', 'n' }; +static const symbol s_7_5[5] = { 'y', 'e', 'n', 'd', 'o' }; +static const symbol s_7_6[2] = { 'y', 'o' }; +static const symbol s_7_7[3] = { 'y', 'a', 's' }; +static const symbol s_7_8[3] = { 'y', 'e', 's' }; +static const symbol s_7_9[4] = { 'y', 'a', 'i', 's' }; +static const symbol s_7_10[5] = { 'y', 'a', 'm', 'o', 's' }; +static const symbol s_7_11[3] = { 'y', 0xC3, 0xB3 }; + +static const struct among a_7[12] = +{ +/* 0 */ { 2, s_7_0, -1, 1, 0}, +/* 1 */ { 2, s_7_1, -1, 1, 0}, +/* 2 */ { 3, s_7_2, -1, 1, 0}, +/* 3 */ { 3, s_7_3, -1, 1, 0}, +/* 4 */ { 5, s_7_4, -1, 1, 0}, +/* 5 */ { 5, s_7_5, -1, 1, 0}, +/* 6 */ { 2, s_7_6, -1, 1, 0}, +/* 7 */ { 3, s_7_7, -1, 1, 0}, +/* 8 */ { 3, s_7_8, -1, 1, 0}, +/* 9 */ { 4, s_7_9, -1, 1, 0}, +/* 10 */ { 5, s_7_10, -1, 1, 0}, +/* 11 */ { 3, s_7_11, -1, 1, 0} +}; + +static const symbol s_8_0[3] = { 'a', 'b', 'a' }; +static const symbol s_8_1[3] = { 'a', 'd', 'a' }; +static const symbol s_8_2[3] = { 'i', 'd', 'a' }; +static const symbol s_8_3[3] = { 'a', 'r', 'a' }; +static const symbol s_8_4[4] = { 'i', 'e', 'r', 'a' }; +static const symbol s_8_5[3] = { 0xC3, 0xAD, 'a' }; +static const symbol s_8_6[5] = { 'a', 'r', 0xC3, 0xAD, 'a' }; +static const symbol s_8_7[5] = { 'e', 'r', 0xC3, 0xAD, 'a' }; +static const symbol s_8_8[5] = { 'i', 'r', 0xC3, 0xAD, 'a' }; +static const symbol s_8_9[2] = { 'a', 'd' }; +static const symbol s_8_10[2] = { 'e', 'd' }; +static const symbol s_8_11[2] = { 'i', 'd' }; +static const symbol s_8_12[3] = { 'a', 's', 'e' }; +static const symbol s_8_13[4] = { 'i', 'e', 's', 'e' }; +static const symbol s_8_14[4] = { 'a', 's', 't', 'e' }; +static const symbol s_8_15[4] = { 'i', 's', 't', 'e' }; +static const symbol s_8_16[2] = { 'a', 'n' }; +static const symbol s_8_17[4] = { 'a', 'b', 'a', 'n' }; +static const symbol s_8_18[4] = { 'a', 'r', 'a', 'n' }; +static const symbol s_8_19[5] = { 'i', 'e', 'r', 'a', 'n' }; +static const symbol s_8_20[4] = { 0xC3, 0xAD, 'a', 'n' }; +static const symbol s_8_21[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 'n' }; +static const symbol s_8_22[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 'n' }; +static const symbol s_8_23[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 'n' }; +static const symbol s_8_24[2] = { 'e', 'n' }; +static const symbol s_8_25[4] = { 'a', 's', 'e', 'n' }; +static const symbol s_8_26[5] = { 'i', 'e', 's', 'e', 'n' }; +static const symbol s_8_27[4] = { 'a', 'r', 'o', 'n' }; +static const symbol s_8_28[5] = { 'i', 'e', 'r', 'o', 'n' }; +static const symbol s_8_29[5] = { 'a', 'r', 0xC3, 0xA1, 'n' }; +static const symbol s_8_30[5] = { 'e', 'r', 0xC3, 0xA1, 'n' }; +static const symbol s_8_31[5] = { 'i', 'r', 0xC3, 0xA1, 'n' }; +static const symbol s_8_32[3] = { 'a', 'd', 'o' }; +static const symbol s_8_33[3] = { 'i', 'd', 'o' }; +static const symbol s_8_34[4] = { 'a', 'n', 'd', 'o' }; +static const symbol s_8_35[5] = { 'i', 'e', 'n', 'd', 'o' }; +static const symbol s_8_36[2] = { 'a', 'r' }; +static const symbol s_8_37[2] = { 'e', 'r' }; +static const symbol s_8_38[2] = { 'i', 'r' }; +static const symbol s_8_39[2] = { 'a', 's' }; +static const symbol s_8_40[4] = { 'a', 'b', 'a', 's' }; +static const symbol s_8_41[4] = { 'a', 'd', 'a', 's' }; +static const symbol s_8_42[4] = { 'i', 'd', 'a', 's' }; +static const symbol s_8_43[4] = { 'a', 'r', 'a', 's' }; +static const symbol s_8_44[5] = { 'i', 'e', 'r', 'a', 's' }; +static const symbol s_8_45[4] = { 0xC3, 0xAD, 'a', 's' }; +static const symbol s_8_46[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 's' }; +static const symbol s_8_47[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 's' }; +static const symbol s_8_48[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 's' }; +static const symbol s_8_49[2] = { 'e', 's' }; +static const symbol s_8_50[4] = { 'a', 's', 'e', 's' }; +static const symbol s_8_51[5] = { 'i', 'e', 's', 'e', 's' }; +static const symbol s_8_52[5] = { 'a', 'b', 'a', 'i', 's' }; +static const symbol s_8_53[5] = { 'a', 'r', 'a', 'i', 's' }; +static const symbol s_8_54[6] = { 'i', 'e', 'r', 'a', 'i', 's' }; +static const symbol s_8_55[5] = { 0xC3, 0xAD, 'a', 'i', 's' }; +static const symbol s_8_56[7] = { 'a', 'r', 0xC3, 0xAD, 'a', 'i', 's' }; +static const symbol s_8_57[7] = { 'e', 'r', 0xC3, 0xAD, 'a', 'i', 's' }; +static const symbol s_8_58[7] = { 'i', 'r', 0xC3, 0xAD, 'a', 'i', 's' }; +static const symbol s_8_59[5] = { 'a', 's', 'e', 'i', 's' }; +static const symbol s_8_60[6] = { 'i', 'e', 's', 'e', 'i', 's' }; +static const symbol s_8_61[6] = { 'a', 's', 't', 'e', 'i', 's' }; +static const symbol s_8_62[6] = { 'i', 's', 't', 'e', 'i', 's' }; +static const symbol s_8_63[4] = { 0xC3, 0xA1, 'i', 's' }; +static const symbol s_8_64[4] = { 0xC3, 0xA9, 'i', 's' }; +static const symbol s_8_65[6] = { 'a', 'r', 0xC3, 0xA9, 'i', 's' }; +static const symbol s_8_66[6] = { 'e', 'r', 0xC3, 0xA9, 'i', 's' }; +static const symbol s_8_67[6] = { 'i', 'r', 0xC3, 0xA9, 'i', 's' }; +static const symbol s_8_68[4] = { 'a', 'd', 'o', 's' }; +static const symbol s_8_69[4] = { 'i', 'd', 'o', 's' }; +static const symbol s_8_70[4] = { 'a', 'm', 'o', 's' }; +static const symbol s_8_71[7] = { 0xC3, 0xA1, 'b', 'a', 'm', 'o', 's' }; +static const symbol s_8_72[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' }; +static const symbol s_8_73[8] = { 'i', 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' }; +static const symbol s_8_74[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' }; +static const symbol s_8_75[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' }; +static const symbol s_8_76[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' }; +static const symbol s_8_77[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' }; +static const symbol s_8_78[4] = { 'e', 'm', 'o', 's' }; +static const symbol s_8_79[6] = { 'a', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_8_80[6] = { 'e', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_8_81[6] = { 'i', 'r', 'e', 'm', 'o', 's' }; +static const symbol s_8_82[7] = { 0xC3, 0xA1, 's', 'e', 'm', 'o', 's' }; +static const symbol s_8_83[8] = { 'i', 0xC3, 0xA9, 's', 'e', 'm', 'o', 's' }; +static const symbol s_8_84[4] = { 'i', 'm', 'o', 's' }; +static const symbol s_8_85[5] = { 'a', 'r', 0xC3, 0xA1, 's' }; +static const symbol s_8_86[5] = { 'e', 'r', 0xC3, 0xA1, 's' }; +static const symbol s_8_87[5] = { 'i', 'r', 0xC3, 0xA1, 's' }; +static const symbol s_8_88[3] = { 0xC3, 0xAD, 's' }; +static const symbol s_8_89[4] = { 'a', 'r', 0xC3, 0xA1 }; +static const symbol s_8_90[4] = { 'e', 'r', 0xC3, 0xA1 }; +static const symbol s_8_91[4] = { 'i', 'r', 0xC3, 0xA1 }; +static const symbol s_8_92[4] = { 'a', 'r', 0xC3, 0xA9 }; +static const symbol s_8_93[4] = { 'e', 'r', 0xC3, 0xA9 }; +static const symbol s_8_94[4] = { 'i', 'r', 0xC3, 0xA9 }; +static const symbol s_8_95[3] = { 'i', 0xC3, 0xB3 }; + +static const struct among a_8[96] = +{ +/* 0 */ { 3, s_8_0, -1, 2, 0}, +/* 1 */ { 3, s_8_1, -1, 2, 0}, +/* 2 */ { 3, s_8_2, -1, 2, 0}, +/* 3 */ { 3, s_8_3, -1, 2, 0}, +/* 4 */ { 4, s_8_4, -1, 2, 0}, +/* 5 */ { 3, s_8_5, -1, 2, 0}, +/* 6 */ { 5, s_8_6, 5, 2, 0}, +/* 7 */ { 5, s_8_7, 5, 2, 0}, +/* 8 */ { 5, s_8_8, 5, 2, 0}, +/* 9 */ { 2, s_8_9, -1, 2, 0}, +/* 10 */ { 2, s_8_10, -1, 2, 0}, +/* 11 */ { 2, s_8_11, -1, 2, 0}, +/* 12 */ { 3, s_8_12, -1, 2, 0}, +/* 13 */ { 4, s_8_13, -1, 2, 0}, +/* 14 */ { 4, s_8_14, -1, 2, 0}, +/* 15 */ { 4, s_8_15, -1, 2, 0}, +/* 16 */ { 2, s_8_16, -1, 2, 0}, +/* 17 */ { 4, s_8_17, 16, 2, 0}, +/* 18 */ { 4, s_8_18, 16, 2, 0}, +/* 19 */ { 5, s_8_19, 16, 2, 0}, +/* 20 */ { 4, s_8_20, 16, 2, 0}, +/* 21 */ { 6, s_8_21, 20, 2, 0}, +/* 22 */ { 6, s_8_22, 20, 2, 0}, +/* 23 */ { 6, s_8_23, 20, 2, 0}, +/* 24 */ { 2, s_8_24, -1, 1, 0}, +/* 25 */ { 4, s_8_25, 24, 2, 0}, +/* 26 */ { 5, s_8_26, 24, 2, 0}, +/* 27 */ { 4, s_8_27, -1, 2, 0}, +/* 28 */ { 5, s_8_28, -1, 2, 0}, +/* 29 */ { 5, s_8_29, -1, 2, 0}, +/* 30 */ { 5, s_8_30, -1, 2, 0}, +/* 31 */ { 5, s_8_31, -1, 2, 0}, +/* 32 */ { 3, s_8_32, -1, 2, 0}, +/* 33 */ { 3, s_8_33, -1, 2, 0}, +/* 34 */ { 4, s_8_34, -1, 2, 0}, +/* 35 */ { 5, s_8_35, -1, 2, 0}, +/* 36 */ { 2, s_8_36, -1, 2, 0}, +/* 37 */ { 2, s_8_37, -1, 2, 0}, +/* 38 */ { 2, s_8_38, -1, 2, 0}, +/* 39 */ { 2, s_8_39, -1, 2, 0}, +/* 40 */ { 4, s_8_40, 39, 2, 0}, +/* 41 */ { 4, s_8_41, 39, 2, 0}, +/* 42 */ { 4, s_8_42, 39, 2, 0}, +/* 43 */ { 4, s_8_43, 39, 2, 0}, +/* 44 */ { 5, s_8_44, 39, 2, 0}, +/* 45 */ { 4, s_8_45, 39, 2, 0}, +/* 46 */ { 6, s_8_46, 45, 2, 0}, +/* 47 */ { 6, s_8_47, 45, 2, 0}, +/* 48 */ { 6, s_8_48, 45, 2, 0}, +/* 49 */ { 2, s_8_49, -1, 1, 0}, +/* 50 */ { 4, s_8_50, 49, 2, 0}, +/* 51 */ { 5, s_8_51, 49, 2, 0}, +/* 52 */ { 5, s_8_52, -1, 2, 0}, +/* 53 */ { 5, s_8_53, -1, 2, 0}, +/* 54 */ { 6, s_8_54, -1, 2, 0}, +/* 55 */ { 5, s_8_55, -1, 2, 0}, +/* 56 */ { 7, s_8_56, 55, 2, 0}, +/* 57 */ { 7, s_8_57, 55, 2, 0}, +/* 58 */ { 7, s_8_58, 55, 2, 0}, +/* 59 */ { 5, s_8_59, -1, 2, 0}, +/* 60 */ { 6, s_8_60, -1, 2, 0}, +/* 61 */ { 6, s_8_61, -1, 2, 0}, +/* 62 */ { 6, s_8_62, -1, 2, 0}, +/* 63 */ { 4, s_8_63, -1, 2, 0}, +/* 64 */ { 4, s_8_64, -1, 1, 0}, +/* 65 */ { 6, s_8_65, 64, 2, 0}, +/* 66 */ { 6, s_8_66, 64, 2, 0}, +/* 67 */ { 6, s_8_67, 64, 2, 0}, +/* 68 */ { 4, s_8_68, -1, 2, 0}, +/* 69 */ { 4, s_8_69, -1, 2, 0}, +/* 70 */ { 4, s_8_70, -1, 2, 0}, +/* 71 */ { 7, s_8_71, 70, 2, 0}, +/* 72 */ { 7, s_8_72, 70, 2, 0}, +/* 73 */ { 8, s_8_73, 70, 2, 0}, +/* 74 */ { 6, s_8_74, 70, 2, 0}, +/* 75 */ { 8, s_8_75, 74, 2, 0}, +/* 76 */ { 8, s_8_76, 74, 2, 0}, +/* 77 */ { 8, s_8_77, 74, 2, 0}, +/* 78 */ { 4, s_8_78, -1, 1, 0}, +/* 79 */ { 6, s_8_79, 78, 2, 0}, +/* 80 */ { 6, s_8_80, 78, 2, 0}, +/* 81 */ { 6, s_8_81, 78, 2, 0}, +/* 82 */ { 7, s_8_82, 78, 2, 0}, +/* 83 */ { 8, s_8_83, 78, 2, 0}, +/* 84 */ { 4, s_8_84, -1, 2, 0}, +/* 85 */ { 5, s_8_85, -1, 2, 0}, +/* 86 */ { 5, s_8_86, -1, 2, 0}, +/* 87 */ { 5, s_8_87, -1, 2, 0}, +/* 88 */ { 3, s_8_88, -1, 2, 0}, +/* 89 */ { 4, s_8_89, -1, 2, 0}, +/* 90 */ { 4, s_8_90, -1, 2, 0}, +/* 91 */ { 4, s_8_91, -1, 2, 0}, +/* 92 */ { 4, s_8_92, -1, 2, 0}, +/* 93 */ { 4, s_8_93, -1, 2, 0}, +/* 94 */ { 4, s_8_94, -1, 2, 0}, +/* 95 */ { 3, s_8_95, -1, 2, 0} +}; + +static const symbol s_9_0[1] = { 'a' }; +static const symbol s_9_1[1] = { 'e' }; +static const symbol s_9_2[1] = { 'o' }; +static const symbol s_9_3[2] = { 'o', 's' }; +static const symbol s_9_4[2] = { 0xC3, 0xA1 }; +static const symbol s_9_5[2] = { 0xC3, 0xA9 }; +static const symbol s_9_6[2] = { 0xC3, 0xAD }; +static const symbol s_9_7[2] = { 0xC3, 0xB3 }; + +static const struct among a_9[8] = +{ +/* 0 */ { 1, s_9_0, -1, 1, 0}, +/* 1 */ { 1, s_9_1, -1, 2, 0}, +/* 2 */ { 1, s_9_2, -1, 1, 0}, +/* 3 */ { 2, s_9_3, -1, 1, 0}, +/* 4 */ { 2, s_9_4, -1, 1, 0}, +/* 5 */ { 2, s_9_5, -1, 2, 0}, +/* 6 */ { 2, s_9_6, -1, 1, 0}, +/* 7 */ { 2, s_9_7, -1, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 }; + +static const symbol s_0[] = { 'a' }; +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[] = { 'i', 'e', 'n', 'd', 'o' }; +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[] = { '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 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; /* grouping v, line 38 */ + { int c3 = z->c; /* or, line 38 */ + 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; + z->c += ret; + } + goto lab3; + lab4: + z->c = c3; + 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; + z->c += ret; + } + } + lab3: + goto lab1; + lab2: + z->c = c2; + 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; /* 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; + z->c += ret; + } + goto lab5; + lab6: + z->c = c4; + 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 */ + } + } + lab5: + ; + } + lab1: + z->I[0] = z->c; /* setmark pV, line 41 */ + lab0: + z->c = c1; + } + { int c5 = z->c; /* do, line 43 */ + { /* gopast */ /* grouping v, line 44 */ + int ret = out_grouping_U(z, g_v, 97, 252, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 44 */ + int ret = in_grouping_U(z, g_v, 97, 252, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[1] = z->c; /* setmark p1, line 44 */ + { /* gopast */ /* grouping v, line 45 */ + int ret = out_grouping_U(z, g_v, 97, 252, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + { /* gopast */ /* non v, line 45 */ + int ret = in_grouping_U(z, g_v, 97, 252, 1); + if (ret < 0) goto lab7; + z->c += ret; + } + z->I[2] = z->c; /* setmark p2, line 45 */ + lab7: + z->c = c5; + } + return 1; +} + +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 /* 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) { /* among, line 50 */ + case 1: + { int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_1); /* <-, line 52 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 1, s_3); /* <-, line 54 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 1, s_4); /* <-, line 55 */ + 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 57 */ + } + break; + } + continue; + lab0: + z->c = c1; + 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 63 */ + return 1; +} + +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) { /* 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) { /* 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; /* 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; /* substring, line 72 */ + among_var = find_among_b(z, a_2, 11); + if (!(among_var)) return 0; + { int ret = r_RV(z); /* call RV, line 72 */ + if (ret <= 0) return ret; + } + 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 */ + if (ret < 0) return ret; + } + break; + case 2: + z->bra = z->c; /* ], line 74 */ + { int ret = slice_from_s(z, 4, s_6); /* <-, line 74 */ + if (ret < 0) return ret; + } + break; + case 3: + z->bra = z->c; /* ], line 75 */ + { int ret = slice_from_s(z, 2, s_7); /* <-, line 75 */ + if (ret < 0) return ret; + } + break; + case 4: + z->bra = z->c; /* ], line 76 */ + { int ret = slice_from_s(z, 2, s_8); /* <-, line 76 */ + if (ret < 0) return ret; + } + break; + case 5: + z->bra = z->c; /* ], line 77 */ + { int ret = slice_from_s(z, 2, s_9); /* <-, line 77 */ + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_del(z); /* delete, line 81 */ + if (ret < 0) return ret; + } + break; + case 7: + 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; + } + break; + } + return 1; +} + +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; /* 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) { /* among, line 87 */ + case 1: + { 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); /* call R2, line 105 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 105 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* try, line 106 */ + z->ket = z->c; /* [, line 106 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + lab0: + ; + } + break; + case 3: + { int ret = r_R2(z); /* call R2, line 111 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 3, s_11); /* <-, line 111 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = r_R2(z); /* call R2, line 115 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 1, s_12); /* <-, line 115 */ + if (ret < 0) return ret; + } + break; + case 5: + { int ret = r_R2(z); /* call R2, line 119 */ + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 4, s_13); /* <-, line 119 */ + if (ret < 0) return ret; + } + break; + case 6: + { 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 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 - 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); /* 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) { /* among, line 125 */ + case 1: + z->ket = z->c; /* [, line 126 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + break; + } + lab1: + ; + } + break; + case 7: + { 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 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 - 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 */ + { 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); /* call R2, line 147 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 147 */ + if (ret < 0) return ret; + } + { 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 - 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 */ + { 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); /* call R2, line 159 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 159 */ + if (ret < 0) return ret; + } + { int m5 = z->l - z->c; (void)m5; /* try, line 160 */ + z->ket = z->c; /* [, line 161 */ + 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); /* 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 */ + if (ret < 0) return ret; + } + lab4: + ; + } + break; + } + return 1; +} + +static int r_y_verb_suffix(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 168 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 168 */ + if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; } /* substring, line 168 */ + z->bra = z->c; /* ], line 168 */ + z->lb = mlimit1; + } + 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) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 176 */ + if (z->c < z->I[0]) return 0; + 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 = mlimit1; return 0; } + z->bra = z->c; /* ], line 176 */ + z->lb = mlimit1; + } + switch (among_var) { /* among, line 176 */ + case 1: + { 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: + ; + } + z->bra = z->c; /* ], line 179 */ + { int ret = slice_del(z); /* delete, line 179 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_del(z); /* delete, line 200 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +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) { /* among, line 205 */ + case 1: + { 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); /* call RV, line 210 */ + if (ret <= 0) return ret; + } + { int ret = slice_del(z); /* delete, line 210 */ + if (ret < 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* try, line 210 */ + z->ket = z->c; /* [, line 210 */ + 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_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); /* 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 */ + if (ret < 0) return ret; + } + lab0: + ; + } + break; + } + return 1; +} + +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 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 - m1; + } + { 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 - 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 - 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 - m2; + } + { 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 - m4; + } + z->c = z->lb; + { 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 = c5; + } + return 1; +} + +extern struct SN_env * spanish_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } + +extern void spanish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_swedish.c b/src/backend/snowball/libstemmer/stem_UTF_8_swedish.c new file mode 100644 index 0000000..c47777d --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_swedish.c @@ -0,0 +1,301 @@ +/* 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 swedish_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_other_suffix(struct SN_env * z); +static int r_consonant_pair(struct SN_env * z); +static int r_main_suffix(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * swedish_UTF_8_create_env(void); +extern void swedish_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[4] = { 'a', 'r', 'n', 'a' }; +static const symbol s_0_2[4] = { 'e', 'r', 'n', 'a' }; +static const symbol s_0_3[7] = { 'h', 'e', 't', 'e', 'r', 'n', 'a' }; +static const symbol s_0_4[4] = { 'o', 'r', 'n', 'a' }; +static const symbol s_0_5[2] = { 'a', 'd' }; +static const symbol s_0_6[1] = { 'e' }; +static const symbol s_0_7[3] = { 'a', 'd', 'e' }; +static const symbol s_0_8[4] = { 'a', 'n', 'd', 'e' }; +static const symbol s_0_9[4] = { 'a', 'r', 'n', 'e' }; +static const symbol s_0_10[3] = { 'a', 'r', 'e' }; +static const symbol s_0_11[4] = { 'a', 's', 't', 'e' }; +static const symbol s_0_12[2] = { 'e', 'n' }; +static const symbol s_0_13[5] = { 'a', 'n', 'd', 'e', 'n' }; +static const symbol s_0_14[4] = { 'a', 'r', 'e', 'n' }; +static const symbol s_0_15[5] = { 'h', 'e', 't', 'e', 'n' }; +static const symbol s_0_16[3] = { 'e', 'r', 'n' }; +static const symbol s_0_17[2] = { 'a', 'r' }; +static const symbol s_0_18[2] = { 'e', 'r' }; +static const symbol s_0_19[5] = { 'h', 'e', 't', 'e', 'r' }; +static const symbol s_0_20[2] = { 'o', 'r' }; +static const symbol s_0_21[1] = { 's' }; +static const symbol s_0_22[2] = { 'a', 's' }; +static const symbol s_0_23[5] = { 'a', 'r', 'n', 'a', 's' }; +static const symbol s_0_24[5] = { 'e', 'r', 'n', 'a', 's' }; +static const symbol s_0_25[5] = { 'o', 'r', 'n', 'a', 's' }; +static const symbol s_0_26[2] = { 'e', 's' }; +static const symbol s_0_27[4] = { 'a', 'd', 'e', 's' }; +static const symbol s_0_28[5] = { 'a', 'n', 'd', 'e', 's' }; +static const symbol s_0_29[3] = { 'e', 'n', 's' }; +static const symbol s_0_30[5] = { 'a', 'r', 'e', 'n', 's' }; +static const symbol s_0_31[6] = { 'h', 'e', 't', 'e', 'n', 's' }; +static const symbol s_0_32[4] = { 'e', 'r', 'n', 's' }; +static const symbol s_0_33[2] = { 'a', 't' }; +static const symbol s_0_34[5] = { 'a', 'n', 'd', 'e', 't' }; +static const symbol s_0_35[3] = { 'h', 'e', 't' }; +static const symbol s_0_36[3] = { 'a', 's', 't' }; + +static const struct among a_0[37] = +{ +/* 0 */ { 1, s_0_0, -1, 1, 0}, +/* 1 */ { 4, s_0_1, 0, 1, 0}, +/* 2 */ { 4, s_0_2, 0, 1, 0}, +/* 3 */ { 7, s_0_3, 2, 1, 0}, +/* 4 */ { 4, s_0_4, 0, 1, 0}, +/* 5 */ { 2, s_0_5, -1, 1, 0}, +/* 6 */ { 1, s_0_6, -1, 1, 0}, +/* 7 */ { 3, s_0_7, 6, 1, 0}, +/* 8 */ { 4, s_0_8, 6, 1, 0}, +/* 9 */ { 4, s_0_9, 6, 1, 0}, +/* 10 */ { 3, s_0_10, 6, 1, 0}, +/* 11 */ { 4, s_0_11, 6, 1, 0}, +/* 12 */ { 2, s_0_12, -1, 1, 0}, +/* 13 */ { 5, s_0_13, 12, 1, 0}, +/* 14 */ { 4, s_0_14, 12, 1, 0}, +/* 15 */ { 5, s_0_15, 12, 1, 0}, +/* 16 */ { 3, s_0_16, -1, 1, 0}, +/* 17 */ { 2, s_0_17, -1, 1, 0}, +/* 18 */ { 2, s_0_18, -1, 1, 0}, +/* 19 */ { 5, s_0_19, 18, 1, 0}, +/* 20 */ { 2, s_0_20, -1, 1, 0}, +/* 21 */ { 1, s_0_21, -1, 2, 0}, +/* 22 */ { 2, s_0_22, 21, 1, 0}, +/* 23 */ { 5, s_0_23, 22, 1, 0}, +/* 24 */ { 5, s_0_24, 22, 1, 0}, +/* 25 */ { 5, s_0_25, 22, 1, 0}, +/* 26 */ { 2, s_0_26, 21, 1, 0}, +/* 27 */ { 4, s_0_27, 26, 1, 0}, +/* 28 */ { 5, s_0_28, 26, 1, 0}, +/* 29 */ { 3, s_0_29, 21, 1, 0}, +/* 30 */ { 5, s_0_30, 29, 1, 0}, +/* 31 */ { 6, s_0_31, 29, 1, 0}, +/* 32 */ { 4, s_0_32, 21, 1, 0}, +/* 33 */ { 2, s_0_33, -1, 1, 0}, +/* 34 */ { 5, s_0_34, -1, 1, 0}, +/* 35 */ { 3, s_0_35, -1, 1, 0}, +/* 36 */ { 3, s_0_36, -1, 1, 0} +}; + +static const symbol s_1_0[2] = { 'd', 'd' }; +static const symbol s_1_1[2] = { 'g', 'd' }; +static const symbol s_1_2[2] = { 'n', 'n' }; +static const symbol s_1_3[2] = { 'd', 't' }; +static const symbol s_1_4[2] = { 'g', 't' }; +static const symbol s_1_5[2] = { 'k', 't' }; +static const symbol s_1_6[2] = { 't', 't' }; + +static const struct among a_1[7] = +{ +/* 0 */ { 2, s_1_0, -1, -1, 0}, +/* 1 */ { 2, s_1_1, -1, -1, 0}, +/* 2 */ { 2, s_1_2, -1, -1, 0}, +/* 3 */ { 2, s_1_3, -1, -1, 0}, +/* 4 */ { 2, s_1_4, -1, -1, 0}, +/* 5 */ { 2, s_1_5, -1, -1, 0}, +/* 6 */ { 2, s_1_6, -1, -1, 0} +}; + +static const symbol s_2_0[2] = { 'i', 'g' }; +static const symbol s_2_1[3] = { 'l', 'i', 'g' }; +static const symbol s_2_2[3] = { 'e', 'l', 's' }; +static const symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' }; +static const symbol s_2_4[5] = { 'l', 0xC3, 0xB6, 's', 't' }; + +static const struct among a_2[5] = +{ +/* 0 */ { 2, s_2_0, -1, 1, 0}, +/* 1 */ { 3, s_2_1, 0, 1, 0}, +/* 2 */ { 3, s_2_2, -1, 1, 0}, +/* 3 */ { 5, s_2_3, -1, 3, 0}, +/* 4 */ { 5, s_2_4, -1, 2, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 }; + +static const unsigned char g_s_ending[] = { 119, 127, 149 }; + +static const symbol s_0[] = { 'l', 0xC3, 0xB6, 's' }; +static const symbol s_1[] = { 'f', 'u', 'l', 'l' }; + +static int r_mark_regions(struct SN_env * z) { /* forwardmode */ + z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */ + { int c_test1 = z->c; /* test, line 29 */ + { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 29 */ + if (ret < 0) return 0; + z->c = ret; + } + z->I[1] = z->c; /* setmark x, line 29 */ + 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 */ + int ret = in_grouping_U(z, g_v, 97, 246, 1); + if (ret < 0) return 0; + z->c += ret; + } + z->I[0] = z->c; /* setmark p1, line 30 */ + /* try, line 31 */ + if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 31 */ + z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 31 */ +lab0: + return 1; +} + +static int r_main_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 37 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 37 */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 37 */ + 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 = mlimit1; + } + 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; /* grouping s_ending, line 46 */ + { int ret = slice_del(z); /* delete, line 46 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ + + { int mlimit1; /* setlimit, line 50 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + { int m2 = z->l - z->c; (void)m2; /* and, line 52 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* among, line 51 */ + 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 = mlimit1; return 0; } + z->c = ret; /* next, line 52 */ + } + z->bra = z->c; /* ], line 52 */ + { int ret = slice_del(z); /* delete, line 52 */ + if (ret < 0) return ret; + } + } + z->lb = mlimit1; + } + return 1; +} + +static int r_other_suffix(struct SN_env * z) { /* backwardmode */ + int among_var; + + { int mlimit1; /* setlimit, line 55 */ + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; /* [, line 56 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 56 */ + among_var = find_among_b(z, a_2, 5); + if (!(among_var)) { z->lb = mlimit1; return 0; } + z->bra = z->c; /* ], line 56 */ + switch (among_var) { /* among, line 56 */ + case 1: + { int ret = slice_del(z); /* delete, line 57 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 4, s_0); /* <-, line 58 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 4, s_1); /* <-, line 59 */ + if (ret < 0) return ret; + } + break; + } + z->lb = mlimit1; + } + return 1; +} + +extern int swedish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 66 */ + { int ret = r_mark_regions(z); /* call mark_regions, line 66 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + 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); /* 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); /* 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); /* call other_suffix, line 70 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + lab3: + z->c = z->l - m4; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * swedish_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); } + +extern void swedish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_tamil.c b/src/backend/snowball/libstemmer/stem_UTF_8_tamil.c new file mode 100644 index 0000000..9bb416c --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_tamil.c @@ -0,0 +1,1915 @@ +/* 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 tamil_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_has_min_length(struct SN_env * z); +static int r_remove_common_word_endings(struct SN_env * z); +static int r_remove_tense_suffixes(struct SN_env * z); +static int r_remove_tense_suffix(struct SN_env * z); +static int r_fix_endings(struct SN_env * z); +static int r_fix_ending(struct SN_env * z); +static int r_fix_va_start(struct SN_env * z); +static int r_remove_vetrumai_urupukal(struct SN_env * z); +static int r_remove_um(struct SN_env * z); +static int r_remove_command_suffixes(struct SN_env * z); +static int r_remove_pronoun_prefixes(struct SN_env * z); +static int r_remove_question_prefixes(struct SN_env * z); +static int r_remove_question_suffixes(struct SN_env * z); +static int r_remove_plural_suffix(struct SN_env * z); +#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); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[3] = { 0xE0, 0xAE, 0x95 }; +static const symbol s_0_1[3] = { 0xE0, 0xAE, 0x99 }; +static const symbol s_0_2[3] = { 0xE0, 0xAE, 0x9A }; +static const symbol s_0_3[3] = { 0xE0, 0xAE, 0x9E }; +static const symbol s_0_4[3] = { 0xE0, 0xAE, 0xA4 }; +static const symbol s_0_5[3] = { 0xE0, 0xAE, 0xA8 }; +static const symbol s_0_6[3] = { 0xE0, 0xAE, 0xAA }; +static const symbol s_0_7[3] = { 0xE0, 0xAE, 0xAE }; +static const symbol s_0_8[3] = { 0xE0, 0xAE, 0xAF }; +static const symbol s_0_9[3] = { 0xE0, 0xAE, 0xB5 }; + +static const struct among a_0[10] = +{ +/* 0 */ { 3, s_0_0, -1, -1, 0}, +/* 1 */ { 3, s_0_1, -1, -1, 0}, +/* 2 */ { 3, s_0_2, -1, -1, 0}, +/* 3 */ { 3, s_0_3, -1, -1, 0}, +/* 4 */ { 3, s_0_4, -1, -1, 0}, +/* 5 */ { 3, s_0_5, -1, -1, 0}, +/* 6 */ { 3, s_0_6, -1, -1, 0}, +/* 7 */ { 3, s_0_7, -1, -1, 0}, +/* 8 */ { 3, s_0_8, -1, -1, 0}, +/* 9 */ { 3, s_0_9, -1, -1, 0} +}; + +static const symbol s_1_0[12] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D }; +static const symbol s_1_1[6] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D }; +static const symbol s_1_2[9] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4 }; + +static const struct among a_1[3] = +{ +/* 0 */ { 12, s_1_0, -1, -1, 0}, +/* 1 */ { 6, s_1_1, -1, -1, 0}, +/* 2 */ { 9, s_1_2, -1, -1, 0} +}; + +static const symbol s_2_0[3] = { 0xE0, 0xAF, 0x80 }; +static const symbol s_2_1[3] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_2_2[3] = { 0xE0, 0xAE, 0xBF }; + +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, -1, 0} +}; + +static const symbol s_3_0[3] = { 0xE0, 0xAE, 0x95 }; +static const symbol s_3_1[3] = { 0xE0, 0xAE, 0x9A }; +static const symbol s_3_2[3] = { 0xE0, 0xAE, 0x9F }; +static const symbol s_3_3[3] = { 0xE0, 0xAE, 0xA4 }; +static const symbol s_3_4[3] = { 0xE0, 0xAE, 0xAA }; +static const symbol s_3_5[3] = { 0xE0, 0xAE, 0xB1 }; + +static const struct among a_3[6] = +{ +/* 0 */ { 3, s_3_0, -1, -1, 0}, +/* 1 */ { 3, s_3_1, -1, -1, 0}, +/* 2 */ { 3, s_3_2, -1, -1, 0}, +/* 3 */ { 3, s_3_3, -1, -1, 0}, +/* 4 */ { 3, s_3_4, -1, -1, 0}, +/* 5 */ { 3, s_3_5, -1, -1, 0} +}; + +static const symbol s_4_0[3] = { 0xE0, 0xAE, 0x95 }; +static const symbol s_4_1[3] = { 0xE0, 0xAE, 0x9A }; +static const symbol s_4_2[3] = { 0xE0, 0xAE, 0x9F }; +static const symbol s_4_3[3] = { 0xE0, 0xAE, 0xA4 }; +static const symbol s_4_4[3] = { 0xE0, 0xAE, 0xAA }; +static const symbol s_4_5[3] = { 0xE0, 0xAE, 0xB1 }; + +static const struct among a_4[6] = +{ +/* 0 */ { 3, s_4_0, -1, -1, 0}, +/* 1 */ { 3, s_4_1, -1, -1, 0}, +/* 2 */ { 3, s_4_2, -1, -1, 0}, +/* 3 */ { 3, s_4_3, -1, -1, 0}, +/* 4 */ { 3, s_4_4, -1, -1, 0}, +/* 5 */ { 3, s_4_5, -1, -1, 0} +}; + +static const symbol s_5_0[3] = { 0xE0, 0xAE, 0x95 }; +static const symbol s_5_1[3] = { 0xE0, 0xAE, 0x9A }; +static const symbol s_5_2[3] = { 0xE0, 0xAE, 0x9F }; +static const symbol s_5_3[3] = { 0xE0, 0xAE, 0xA4 }; +static const symbol s_5_4[3] = { 0xE0, 0xAE, 0xAA }; +static const symbol s_5_5[3] = { 0xE0, 0xAE, 0xB1 }; + +static const struct among a_5[6] = +{ +/* 0 */ { 3, s_5_0, -1, -1, 0}, +/* 1 */ { 3, s_5_1, -1, -1, 0}, +/* 2 */ { 3, s_5_2, -1, -1, 0}, +/* 3 */ { 3, s_5_3, -1, -1, 0}, +/* 4 */ { 3, s_5_4, -1, -1, 0}, +/* 5 */ { 3, s_5_5, -1, -1, 0} +}; + +static const symbol s_6_0[3] = { 0xE0, 0xAE, 0xAF }; +static const symbol s_6_1[3] = { 0xE0, 0xAE, 0xB0 }; +static const symbol s_6_2[3] = { 0xE0, 0xAE, 0xB2 }; +static const symbol s_6_3[3] = { 0xE0, 0xAE, 0xB3 }; +static const symbol s_6_4[3] = { 0xE0, 0xAE, 0xB4 }; +static const symbol s_6_5[3] = { 0xE0, 0xAE, 0xB5 }; + +static const struct among a_6[6] = +{ +/* 0 */ { 3, s_6_0, -1, -1, 0}, +/* 1 */ { 3, s_6_1, -1, -1, 0}, +/* 2 */ { 3, s_6_2, -1, -1, 0}, +/* 3 */ { 3, s_6_3, -1, -1, 0}, +/* 4 */ { 3, s_6_4, -1, -1, 0}, +/* 5 */ { 3, s_6_5, -1, -1, 0} +}; + +static const symbol s_7_0[3] = { 0xE0, 0xAE, 0x99 }; +static const symbol s_7_1[3] = { 0xE0, 0xAE, 0x9E }; +static const symbol s_7_2[3] = { 0xE0, 0xAE, 0xA3 }; +static const symbol s_7_3[3] = { 0xE0, 0xAE, 0xA8 }; +static const symbol s_7_4[3] = { 0xE0, 0xAE, 0xA9 }; +static const symbol s_7_5[3] = { 0xE0, 0xAE, 0xAE }; + +static const struct among a_7[6] = +{ +/* 0 */ { 3, s_7_0, -1, -1, 0}, +/* 1 */ { 3, s_7_1, -1, -1, 0}, +/* 2 */ { 3, s_7_2, -1, -1, 0}, +/* 3 */ { 3, s_7_3, -1, -1, 0}, +/* 4 */ { 3, s_7_4, -1, -1, 0}, +/* 5 */ { 3, s_7_5, -1, -1, 0} +}; + +static const symbol s_8_0[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8D }; +static const symbol s_8_1[3] = { 0xE0, 0xAE, 0xAF }; +static const symbol s_8_2[3] = { 0xE0, 0xAE, 0xB5 }; + +static const struct among a_8[3] = +{ +/* 0 */ { 6, s_8_0, -1, -1, 0}, +/* 1 */ { 3, s_8_1, -1, -1, 0}, +/* 2 */ { 3, s_8_2, -1, -1, 0} +}; + +static const symbol s_9_0[3] = { 0xE0, 0xAF, 0x80 }; +static const symbol s_9_1[3] = { 0xE0, 0xAF, 0x81 }; +static const symbol s_9_2[3] = { 0xE0, 0xAF, 0x82 }; +static const symbol s_9_3[3] = { 0xE0, 0xAF, 0x86 }; +static const symbol s_9_4[3] = { 0xE0, 0xAF, 0x87 }; +static const symbol s_9_5[3] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_9_6[3] = { 0xE0, 0xAE, 0xBE }; +static const symbol s_9_7[3] = { 0xE0, 0xAE, 0xBF }; + +static const struct among a_9[8] = +{ +/* 0 */ { 3, s_9_0, -1, -1, 0}, +/* 1 */ { 3, s_9_1, -1, -1, 0}, +/* 2 */ { 3, s_9_2, -1, -1, 0}, +/* 3 */ { 3, s_9_3, -1, -1, 0}, +/* 4 */ { 3, s_9_4, -1, -1, 0}, +/* 5 */ { 3, s_9_5, -1, -1, 0}, +/* 6 */ { 3, s_9_6, -1, -1, 0}, +/* 7 */ { 3, s_9_7, -1, -1, 0} +}; + +static const symbol s_10_0[3] = { 0xE0, 0xAF, 0x80 }; +static const symbol s_10_1[3] = { 0xE0, 0xAF, 0x81 }; +static const symbol s_10_2[3] = { 0xE0, 0xAF, 0x82 }; +static const symbol s_10_3[3] = { 0xE0, 0xAF, 0x86 }; +static const symbol s_10_4[3] = { 0xE0, 0xAF, 0x87 }; +static const symbol s_10_5[3] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_10_6[3] = { 0xE0, 0xAE, 0xBE }; +static const symbol s_10_7[3] = { 0xE0, 0xAE, 0xBF }; + +static const struct among a_10[8] = +{ +/* 0 */ { 3, s_10_0, -1, -1, 0}, +/* 1 */ { 3, s_10_1, -1, -1, 0}, +/* 2 */ { 3, s_10_2, -1, -1, 0}, +/* 3 */ { 3, s_10_3, -1, -1, 0}, +/* 4 */ { 3, s_10_4, -1, -1, 0}, +/* 5 */ { 3, s_10_5, -1, -1, 0}, +/* 6 */ { 3, s_10_6, -1, -1, 0}, +/* 7 */ { 3, s_10_7, -1, -1, 0} +}; + +static const symbol s_11_0[3] = { 0xE0, 0xAE, 0x85 }; +static const symbol s_11_1[3] = { 0xE0, 0xAE, 0x87 }; +static const symbol s_11_2[3] = { 0xE0, 0xAE, 0x89 }; + +static const struct among a_11[3] = +{ +/* 0 */ { 3, s_11_0, -1, -1, 0}, +/* 1 */ { 3, s_11_1, -1, -1, 0}, +/* 2 */ { 3, s_11_2, -1, -1, 0} +}; + +static const symbol s_12_0[3] = { 0xE0, 0xAE, 0x95 }; +static const symbol s_12_1[3] = { 0xE0, 0xAE, 0x99 }; +static const symbol s_12_2[3] = { 0xE0, 0xAE, 0x9A }; +static const symbol s_12_3[3] = { 0xE0, 0xAE, 0x9E }; +static const symbol s_12_4[3] = { 0xE0, 0xAE, 0xA4 }; +static const symbol s_12_5[3] = { 0xE0, 0xAE, 0xA8 }; +static const symbol s_12_6[3] = { 0xE0, 0xAE, 0xAA }; +static const symbol s_12_7[3] = { 0xE0, 0xAE, 0xAE }; +static const symbol s_12_8[3] = { 0xE0, 0xAE, 0xAF }; +static const symbol s_12_9[3] = { 0xE0, 0xAE, 0xB5 }; + +static const struct among a_12[10] = +{ +/* 0 */ { 3, s_12_0, -1, -1, 0}, +/* 1 */ { 3, s_12_1, -1, -1, 0}, +/* 2 */ { 3, s_12_2, -1, -1, 0}, +/* 3 */ { 3, s_12_3, -1, -1, 0}, +/* 4 */ { 3, s_12_4, -1, -1, 0}, +/* 5 */ { 3, s_12_5, -1, -1, 0}, +/* 6 */ { 3, s_12_6, -1, -1, 0}, +/* 7 */ { 3, s_12_7, -1, -1, 0}, +/* 8 */ { 3, s_12_8, -1, -1, 0}, +/* 9 */ { 3, s_12_9, -1, -1, 0} +}; + +static const symbol s_13_0[3] = { 0xE0, 0xAE, 0x95 }; +static const symbol s_13_1[3] = { 0xE0, 0xAE, 0x9A }; +static const symbol s_13_2[3] = { 0xE0, 0xAE, 0x9F }; +static const symbol s_13_3[3] = { 0xE0, 0xAE, 0xA4 }; +static const symbol s_13_4[3] = { 0xE0, 0xAE, 0xAA }; +static const symbol s_13_5[3] = { 0xE0, 0xAE, 0xB1 }; + +static const struct among a_13[6] = +{ +/* 0 */ { 3, s_13_0, -1, -1, 0}, +/* 1 */ { 3, s_13_1, -1, -1, 0}, +/* 2 */ { 3, s_13_2, -1, -1, 0}, +/* 3 */ { 3, s_13_3, -1, -1, 0}, +/* 4 */ { 3, s_13_4, -1, -1, 0}, +/* 5 */ { 3, s_13_5, -1, -1, 0} +}; + +static const symbol s_14_0[3] = { 0xE0, 0xAF, 0x87 }; +static const symbol s_14_1[3] = { 0xE0, 0xAF, 0x8B }; +static const symbol s_14_2[3] = { 0xE0, 0xAE, 0xBE }; + +static const struct among a_14[3] = +{ +/* 0 */ { 3, s_14_0, -1, -1, 0}, +/* 1 */ { 3, s_14_1, -1, -1, 0}, +/* 2 */ { 3, s_14_2, -1, -1, 0} +}; + +static const symbol s_15_0[6] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xBF }; +static const symbol s_15_1[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF }; + +static const struct among a_15[2] = +{ +/* 0 */ { 6, s_15_0, -1, -1, 0}, +/* 1 */ { 6, s_15_1, -1, -1, 0} +}; + +static const symbol s_16_0[3] = { 0xE0, 0xAF, 0x80 }; +static const symbol s_16_1[3] = { 0xE0, 0xAF, 0x81 }; +static const symbol s_16_2[3] = { 0xE0, 0xAF, 0x82 }; +static const symbol s_16_3[3] = { 0xE0, 0xAF, 0x86 }; +static const symbol s_16_4[3] = { 0xE0, 0xAF, 0x87 }; +static const symbol s_16_5[3] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_16_6[3] = { 0xE0, 0xAE, 0xBE }; +static const symbol s_16_7[3] = { 0xE0, 0xAE, 0xBF }; + +static const struct among a_16[8] = +{ +/* 0 */ { 3, s_16_0, -1, -1, 0}, +/* 1 */ { 3, s_16_1, -1, -1, 0}, +/* 2 */ { 3, s_16_2, -1, -1, 0}, +/* 3 */ { 3, s_16_3, -1, -1, 0}, +/* 4 */ { 3, s_16_4, -1, -1, 0}, +/* 5 */ { 3, s_16_5, -1, -1, 0}, +/* 6 */ { 3, s_16_6, -1, -1, 0}, +/* 7 */ { 3, s_16_7, -1, -1, 0} +}; + +static const symbol s_17_0[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 }; +static const symbol s_17_1[18] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 }; +static const symbol s_17_2[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 }; +static const symbol s_17_3[12] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 }; +static const symbol s_17_4[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 }; +static const symbol s_17_5[21] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_17_6[12] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F }; +static const symbol s_17_7[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA3 }; +static const symbol s_17_8[9] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 }; +static const symbol s_17_9[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 }; +static const symbol s_17_10[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB0, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF }; +static const symbol s_17_11[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF }; +static const symbol s_17_12[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF }; + +static const struct among a_17[13] = +{ +/* 0 */ { 15, s_17_0, -1, -1, 0}, +/* 1 */ { 18, s_17_1, -1, -1, 0}, +/* 2 */ { 9, s_17_2, -1, -1, 0}, +/* 3 */ { 12, s_17_3, -1, -1, 0}, +/* 4 */ { 18, s_17_4, -1, -1, 0}, +/* 5 */ { 21, s_17_5, -1, -1, 0}, +/* 6 */ { 12, s_17_6, -1, -1, 0}, +/* 7 */ { 15, s_17_7, -1, -1, 0}, +/* 8 */ { 9, s_17_8, -1, -1, 0}, +/* 9 */ { 18, s_17_9, 8, -1, 0}, +/* 10 */ { 15, s_17_10, -1, -1, 0}, +/* 11 */ { 9, s_17_11, -1, -1, 0}, +/* 12 */ { 15, s_17_12, -1, -1, 0} +}; + +static const symbol s_18_0[3] = { 0xE0, 0xAE, 0x95 }; +static const symbol s_18_1[3] = { 0xE0, 0xAE, 0x9A }; +static const symbol s_18_2[3] = { 0xE0, 0xAE, 0x9F }; +static const symbol s_18_3[3] = { 0xE0, 0xAE, 0xA4 }; +static const symbol s_18_4[3] = { 0xE0, 0xAE, 0xAA }; +static const symbol s_18_5[3] = { 0xE0, 0xAE, 0xB1 }; + +static const struct among a_18[6] = +{ +/* 0 */ { 3, s_18_0, -1, -1, 0}, +/* 1 */ { 3, s_18_1, -1, -1, 0}, +/* 2 */ { 3, s_18_2, -1, -1, 0}, +/* 3 */ { 3, s_18_3, -1, -1, 0}, +/* 4 */ { 3, s_18_4, -1, -1, 0}, +/* 5 */ { 3, s_18_5, -1, -1, 0} +}; + +static const symbol s_19_0[3] = { 0xE0, 0xAE, 0x95 }; +static const symbol s_19_1[3] = { 0xE0, 0xAE, 0x9A }; +static const symbol s_19_2[3] = { 0xE0, 0xAE, 0x9F }; +static const symbol s_19_3[3] = { 0xE0, 0xAE, 0xA4 }; +static const symbol s_19_4[3] = { 0xE0, 0xAE, 0xAA }; +static const symbol s_19_5[3] = { 0xE0, 0xAE, 0xB1 }; + +static const struct among a_19[6] = +{ +/* 0 */ { 3, s_19_0, -1, -1, 0}, +/* 1 */ { 3, s_19_1, -1, -1, 0}, +/* 2 */ { 3, s_19_2, -1, -1, 0}, +/* 3 */ { 3, s_19_3, -1, -1, 0}, +/* 4 */ { 3, s_19_4, -1, -1, 0}, +/* 5 */ { 3, s_19_5, -1, -1, 0} +}; + +static const symbol s_20_0[3] = { 0xE0, 0xAF, 0x80 }; +static const symbol s_20_1[3] = { 0xE0, 0xAF, 0x81 }; +static const symbol s_20_2[3] = { 0xE0, 0xAF, 0x82 }; +static const symbol s_20_3[3] = { 0xE0, 0xAF, 0x86 }; +static const symbol s_20_4[3] = { 0xE0, 0xAF, 0x87 }; +static const symbol s_20_5[3] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_20_6[3] = { 0xE0, 0xAE, 0xBE }; +static const symbol s_20_7[3] = { 0xE0, 0xAE, 0xBF }; + +static const struct among a_20[8] = +{ +/* 0 */ { 3, s_20_0, -1, -1, 0}, +/* 1 */ { 3, s_20_1, -1, -1, 0}, +/* 2 */ { 3, s_20_2, -1, -1, 0}, +/* 3 */ { 3, s_20_3, -1, -1, 0}, +/* 4 */ { 3, s_20_4, -1, -1, 0}, +/* 5 */ { 3, s_20_5, -1, -1, 0}, +/* 6 */ { 3, s_20_6, -1, -1, 0}, +/* 7 */ { 3, s_20_7, -1, -1, 0} +}; + +static const symbol s_21_0[3] = { 0xE0, 0xAF, 0x80 }; +static const symbol s_21_1[3] = { 0xE0, 0xAF, 0x81 }; +static const symbol s_21_2[3] = { 0xE0, 0xAF, 0x82 }; +static const symbol s_21_3[3] = { 0xE0, 0xAF, 0x86 }; +static const symbol s_21_4[3] = { 0xE0, 0xAF, 0x87 }; +static const symbol s_21_5[3] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_21_6[3] = { 0xE0, 0xAE, 0xBE }; +static const symbol s_21_7[3] = { 0xE0, 0xAE, 0xBF }; + +static const struct among a_21[8] = +{ +/* 0 */ { 3, s_21_0, -1, -1, 0}, +/* 1 */ { 3, s_21_1, -1, -1, 0}, +/* 2 */ { 3, s_21_2, -1, -1, 0}, +/* 3 */ { 3, s_21_3, -1, -1, 0}, +/* 4 */ { 3, s_21_4, -1, -1, 0}, +/* 5 */ { 3, s_21_5, -1, -1, 0}, +/* 6 */ { 3, s_21_6, -1, -1, 0}, +/* 7 */ { 3, s_21_7, -1, -1, 0} +}; + +static const symbol s_22_0[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 }; +static const symbol s_22_1[24] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D }; + +static const struct among a_22[2] = +{ +/* 0 */ { 9, s_22_0, -1, -1, 0}, +/* 1 */ { 24, s_22_1, -1, -1, 0} +}; + +static const symbol s_23_0[3] = { 0xE0, 0xAE, 0x85 }; +static const symbol s_23_1[3] = { 0xE0, 0xAE, 0x86 }; +static const symbol s_23_2[3] = { 0xE0, 0xAE, 0x87 }; +static const symbol s_23_3[3] = { 0xE0, 0xAE, 0x88 }; +static const symbol s_23_4[3] = { 0xE0, 0xAE, 0x89 }; +static const symbol s_23_5[3] = { 0xE0, 0xAE, 0x8A }; +static const symbol s_23_6[3] = { 0xE0, 0xAE, 0x8E }; +static const symbol s_23_7[3] = { 0xE0, 0xAE, 0x8F }; +static const symbol s_23_8[3] = { 0xE0, 0xAE, 0x90 }; +static const symbol s_23_9[3] = { 0xE0, 0xAE, 0x92 }; +static const symbol s_23_10[3] = { 0xE0, 0xAE, 0x93 }; +static const symbol s_23_11[3] = { 0xE0, 0xAE, 0x94 }; + +static const struct among a_23[12] = +{ +/* 0 */ { 3, s_23_0, -1, -1, 0}, +/* 1 */ { 3, s_23_1, -1, -1, 0}, +/* 2 */ { 3, s_23_2, -1, -1, 0}, +/* 3 */ { 3, s_23_3, -1, -1, 0}, +/* 4 */ { 3, s_23_4, -1, -1, 0}, +/* 5 */ { 3, s_23_5, -1, -1, 0}, +/* 6 */ { 3, s_23_6, -1, -1, 0}, +/* 7 */ { 3, s_23_7, -1, -1, 0}, +/* 8 */ { 3, s_23_8, -1, -1, 0}, +/* 9 */ { 3, s_23_9, -1, -1, 0}, +/* 10 */ { 3, s_23_10, -1, -1, 0}, +/* 11 */ { 3, s_23_11, -1, -1, 0} +}; + +static const symbol s_24_0[3] = { 0xE0, 0xAF, 0x80 }; +static const symbol s_24_1[3] = { 0xE0, 0xAF, 0x81 }; +static const symbol s_24_2[3] = { 0xE0, 0xAF, 0x82 }; +static const symbol s_24_3[3] = { 0xE0, 0xAF, 0x86 }; +static const symbol s_24_4[3] = { 0xE0, 0xAF, 0x87 }; +static const symbol s_24_5[3] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_24_6[3] = { 0xE0, 0xAE, 0xBE }; +static const symbol s_24_7[3] = { 0xE0, 0xAE, 0xBF }; + +static const struct among a_24[8] = +{ +/* 0 */ { 3, s_24_0, -1, -1, 0}, +/* 1 */ { 3, s_24_1, -1, -1, 0}, +/* 2 */ { 3, s_24_2, -1, -1, 0}, +/* 3 */ { 3, s_24_3, -1, -1, 0}, +/* 4 */ { 3, s_24_4, -1, -1, 0}, +/* 5 */ { 3, s_24_5, -1, -1, 0}, +/* 6 */ { 3, s_24_6, -1, -1, 0}, +/* 7 */ { 3, s_24_7, -1, -1, 0} +}; + +static const symbol s_25_0[18] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D }; +static const symbol s_25_1[21] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D }; +static const symbol s_25_2[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D }; +static const symbol s_25_3[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 }; +static const symbol s_25_4[18] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 }; +static const symbol s_25_5[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1 }; + +static const struct among a_25[6] = +{ +/* 0 */ { 18, s_25_0, -1, -1, 0}, +/* 1 */ { 21, s_25_1, -1, -1, 0}, +/* 2 */ { 12, s_25_2, -1, -1, 0}, +/* 3 */ { 15, s_25_3, -1, -1, 0}, +/* 4 */ { 18, s_25_4, -1, -1, 0}, +/* 5 */ { 9, s_25_5, -1, -1, 0} +}; + +static const symbol s_0[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B }; +static const symbol s_1[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B }; +static const symbol s_2[] = { 0xE0, 0xAE, 0x93 }; +static const symbol s_3[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A }; +static const symbol s_4[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A }; +static const symbol s_5[] = { 0xE0, 0xAE, 0x92 }; +static const symbol s_6[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 }; +static const symbol s_7[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 }; +static const symbol s_8[] = { 0xE0, 0xAE, 0x89 }; +static const symbol s_9[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 }; +static const symbol s_10[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 }; +static const symbol s_11[] = { 0xE0, 0xAE, 0x8A }; +static const symbol s_12[] = { 0xE0, 0xAE, 0x8E }; +static const symbol s_13[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_14[] = { 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D }; +static const symbol s_15[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xAA, 0xE0, 0xAF, 0x8D }; +static const symbol s_16[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D }; +static const symbol s_17[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_18[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D }; +static const symbol s_19[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D }; +static const symbol s_20[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D }; +static const symbol s_21[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D }; +static const symbol s_22[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D }; +static const symbol s_23[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 }; +static const symbol s_24[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D }; +static const symbol s_25[] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_26[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_27[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D }; +static const symbol s_28[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D }; +static const symbol s_29[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_30[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_31[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_32[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D }; +static const symbol s_33[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_34[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_35[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_36[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_37[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_38[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81 }; +static const symbol s_39[] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D }; +static const symbol s_40[] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_41[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_42[] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D }; +static const symbol s_43[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_44[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_45[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_46[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_47[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_48[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_49[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D }; +static const symbol s_50[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_51[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_52[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_53[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_54[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_55[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_56[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_57[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x88 }; +static const symbol s_58[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_59[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF }; +static const symbol s_60[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF }; +static const symbol s_61[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF }; +static const symbol s_62[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 }; +static const symbol s_63[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB3 }; +static const symbol s_64[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88, 0xE0, 0xAE, 0xAF }; +static const symbol s_65[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 }; +static const symbol s_66[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_67[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2 }; +static const symbol s_68[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9 }; +static const symbol s_69[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF }; +static const symbol s_70[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_71[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 }; +static const symbol s_72[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 }; +static const symbol s_73[] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_74[] = { 0xE0, 0xAF, 0x88 }; +static const symbol s_75[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_76[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_77[] = { 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 }; +static const symbol s_78[] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 }; +static const symbol s_79[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D }; +static const symbol s_80[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D }; +static const symbol s_81[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_82[] = { 0xE0, 0xAE, 0xAE }; +static const symbol s_83[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 }; +static const symbol s_84[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 }; +static const symbol s_85[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F }; +static const symbol s_86[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_87[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D }; +static const symbol s_88[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 }; +static const symbol s_89[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D }; +static const symbol s_90[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D }; +static const symbol s_91[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_92[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_93[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D }; +static const symbol s_94[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_95[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D }; +static const symbol s_96[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D }; +static const symbol s_97[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB4, 0xE0, 0xAF, 0x8D }; +static const symbol s_98[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_99[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 }; +static const symbol s_100[] = { 0xE0, 0xAF, 0x80 }; +static const symbol s_101[] = { 0xE0, 0xAE, 0xBF }; +static const symbol s_102[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_103[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_104[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D }; +static const symbol s_105[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_106[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_107[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_108[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_109[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D }; +static const symbol s_110[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_111[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_112[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_113[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D }; +static const symbol s_114[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D }; +static const symbol s_115[] = { 0xE0, 0xAE, 0xA9 }; +static const symbol s_116[] = { 0xE0, 0xAE, 0xAA }; +static const symbol s_117[] = { 0xE0, 0xAE, 0x95 }; +static const symbol s_118[] = { 0xE0, 0xAE, 0xA4 }; +static const symbol s_119[] = { 0xE0, 0xAE, 0xAF }; +static const symbol s_120[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_121[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_122[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D }; +static const symbol s_123[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 }; +static const symbol s_124[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 }; +static const symbol s_125[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_126[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_127[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_128[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_129[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_130[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_131[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 }; +static const symbol s_132[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x88 }; +static const symbol s_133[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_134[] = { 0xE0, 0xAE, 0x9A }; +static const symbol s_135[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D }; +static const symbol s_136[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D }; +static const symbol s_137[] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_138[] = { 0xE0, 0xAE, 0xBE }; +static const symbol s_139[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_140[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_141[] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_142[] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_143[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_144[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_145[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_146[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D }; +static const symbol s_147[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D }; +static const symbol s_148[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D }; +static const symbol s_149[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D }; +static const symbol s_150[] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D }; +static const symbol s_151[] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xAF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D }; +static const symbol s_152[] = { 0xE0, 0xAF, 0x8D }; +static const symbol s_153[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81 }; +static const symbol s_154[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 }; +static const symbol s_155[] = { 0xE0, 0xAF, 0x8D }; + +static int r_has_min_length(struct SN_env * z) { /* forwardmode */ + if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 100 */ + return 1; +} + +static int r_fix_va_start(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* or, line 104 */ + { int c2 = z->c; /* and, line 104 */ + { int c3 = z->c; /* try, line 104 */ + if (!(eq_s(z, 6, s_0))) { z->c = c3; goto lab2; } /* literal, line 104 */ + lab2: + ; + } + z->c = c2; + z->bra = z->c; /* [, line 104 */ + } + if (!(eq_s(z, 6, s_1))) goto lab1; /* literal, line 104 */ + z->ket = z->c; /* ], line 104 */ + { int ret = slice_from_s(z, 3, s_2); /* <-, line 104 */ + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = c1; + { int c4 = z->c; /* and, line 105 */ + { int c5 = z->c; /* try, line 105 */ + if (!(eq_s(z, 6, s_3))) { z->c = c5; goto lab4; } /* literal, line 105 */ + lab4: + ; + } + z->c = c4; + z->bra = z->c; /* [, line 105 */ + } + if (!(eq_s(z, 6, s_4))) goto lab3; /* literal, line 105 */ + z->ket = z->c; /* ], line 105 */ + { int ret = slice_from_s(z, 3, s_5); /* <-, line 105 */ + if (ret < 0) return ret; + } + goto lab0; + lab3: + z->c = c1; + { int c6 = z->c; /* and, line 106 */ + { int c7 = z->c; /* try, line 106 */ + if (!(eq_s(z, 6, s_6))) { z->c = c7; goto lab6; } /* literal, line 106 */ + lab6: + ; + } + z->c = c6; + z->bra = z->c; /* [, line 106 */ + } + if (!(eq_s(z, 6, s_7))) goto lab5; /* literal, line 106 */ + z->ket = z->c; /* ], line 106 */ + { int ret = slice_from_s(z, 3, s_8); /* <-, line 106 */ + if (ret < 0) return ret; + } + goto lab0; + lab5: + z->c = c1; + { int c8 = z->c; /* and, line 107 */ + { int c9 = z->c; /* try, line 107 */ + if (!(eq_s(z, 6, s_9))) { z->c = c9; goto lab7; } /* literal, line 107 */ + lab7: + ; + } + z->c = c8; + z->bra = z->c; /* [, line 107 */ + } + if (!(eq_s(z, 6, s_10))) return 0; /* literal, line 107 */ + z->ket = z->c; /* ], line 107 */ + { int ret = slice_from_s(z, 3, s_11); /* <-, line 107 */ + if (ret < 0) return ret; + } + } +lab0: + return 1; +} + +static int r_fix_endings(struct SN_env * z) { /* forwardmode */ + { int c1 = z->c; /* do, line 111 */ + while(1) { /* repeat, line 111 */ + int c2 = z->c; + { int ret = r_fix_ending(z); /* call fix_ending, line 111 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + continue; + lab1: + z->c = c2; + break; + } + z->c = c1; + } + return 1; +} + +static int r_remove_question_prefixes(struct SN_env * z) { /* forwardmode */ + z->bra = z->c; /* [, line 115 */ + if (!(eq_s(z, 3, s_12))) return 0; /* literal, line 115 */ + if (!(find_among(z, a_0, 10))) return 0; /* among, line 115 */ + if (!(eq_s(z, 3, s_13))) return 0; /* literal, line 115 */ + z->ket = z->c; /* ], line 115 */ + { int ret = slice_del(z); /* delete, line 115 */ + if (ret < 0) return ret; + } + { int c1 = z->c; /* do, line 116 */ + { int ret = r_fix_va_start(z); /* call fix_va_start, line 116 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + return 1; +} + +static int r_fix_ending(struct SN_env * z) { /* forwardmode */ + if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 121 */ + z->lb = z->c; z->c = z->l; /* backwards, line 122 */ + + { int m1 = z->l - z->c; (void)m1; /* or, line 124 */ + z->ket = z->c; /* [, line 123 */ + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 164)) goto lab1; /* among, line 123 */ + if (!(find_among_b(z, a_1, 3))) goto lab1; + z->bra = z->c; /* ], line 123 */ + { int ret = slice_del(z); /* delete, line 123 */ + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 125 */ + if (!(eq_s_b(z, 6, s_14))) goto lab2; /* literal, line 125 */ + { int m_test2 = z->l - z->c; /* test, line 125 */ + if (!(find_among_b(z, a_2, 3))) goto lab2; /* among, line 125 */ + z->c = z->l - m_test2; + } + z->bra = z->c; /* ], line 125 */ + { int ret = slice_del(z); /* delete, line 125 */ + if (ret < 0) return ret; + } + goto lab0; + lab2: + z->c = z->l - m1; + z->ket = z->c; /* [, line 127 */ + { int m3 = z->l - z->c; (void)m3; /* or, line 127 */ + if (!(eq_s_b(z, 12, s_15))) goto lab5; /* literal, line 127 */ + goto lab4; + lab5: + z->c = z->l - m3; + if (!(eq_s_b(z, 12, s_16))) goto lab3; /* literal, line 127 */ + } + lab4: + z->bra = z->c; /* ], line 127 */ + { int ret = slice_from_s(z, 6, s_17); /* <-, line 127 */ + if (ret < 0) return ret; + } + goto lab0; + lab3: + z->c = z->l - m1; + z->ket = z->c; /* [, line 129 */ + if (!(eq_s_b(z, 12, s_18))) goto lab6; /* literal, line 129 */ + z->bra = z->c; /* ], line 129 */ + { int ret = slice_from_s(z, 6, s_19); /* <-, line 129 */ + if (ret < 0) return ret; + } + goto lab0; + lab6: + z->c = z->l - m1; + z->ket = z->c; /* [, line 132 */ + if (!(eq_s_b(z, 12, s_20))) goto lab7; /* literal, line 132 */ + z->bra = z->c; /* ], line 132 */ + { int ret = slice_from_s(z, 6, s_21); /* <-, line 132 */ + if (ret < 0) return ret; + } + goto lab0; + lab7: + z->c = z->l - m1; + z->ket = z->c; /* [, line 134 */ + if (!(eq_s_b(z, 12, s_22))) goto lab8; /* literal, line 134 */ + z->bra = z->c; /* ], line 134 */ + { int ret = slice_from_s(z, 6, s_23); /* <-, line 134 */ + if (ret < 0) return ret; + } + goto lab0; + lab8: + z->c = z->l - m1; + if (!(z->B[1])) goto lab9; /* Boolean test found_vetrumai_urupu, line 136 */ + z->ket = z->c; /* [, line 136 */ + if (!(eq_s_b(z, 12, s_24))) goto lab9; /* literal, line 136 */ + { int m_test4 = z->l - z->c; /* test, line 136 */ + { int m5 = z->l - z->c; (void)m5; /* not, line 136 */ + if (!(eq_s_b(z, 3, s_25))) goto lab10; /* literal, line 136 */ + goto lab9; + lab10: + z->c = z->l - m5; + } + z->c = z->l - m_test4; + } + z->bra = z->c; /* ], line 136 */ + { int ret = slice_from_s(z, 6, s_26); /* <-, line 136 */ + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 136 */ + goto lab0; + lab9: + z->c = z->l - m1; + z->ket = z->c; /* [, line 138 */ + { int m6 = z->l - z->c; (void)m6; /* or, line 138 */ + if (!(eq_s_b(z, 9, s_27))) goto lab13; /* literal, line 138 */ + goto lab12; + lab13: + z->c = z->l - m6; + if (!(eq_s_b(z, 15, s_28))) goto lab11; /* literal, line 138 */ + } + lab12: + z->bra = z->c; /* ], line 138 */ + { int ret = slice_from_s(z, 3, s_29); /* <-, line 138 */ + if (ret < 0) return ret; + } + goto lab0; + lab11: + z->c = z->l - m1; + z->ket = z->c; /* [, line 140 */ + if (!(eq_s_b(z, 3, s_30))) goto lab14; /* literal, line 140 */ + if (!(find_among_b(z, a_3, 6))) goto lab14; /* among, line 140 */ + if (!(eq_s_b(z, 3, s_31))) goto lab14; /* literal, line 140 */ + if (!(find_among_b(z, a_4, 6))) goto lab14; /* among, line 140 */ + z->bra = z->c; /* ], line 140 */ + { int ret = slice_del(z); /* delete, line 140 */ + if (ret < 0) return ret; + } + goto lab0; + lab14: + z->c = z->l - m1; + z->ket = z->c; /* [, line 142 */ + if (!(eq_s_b(z, 9, s_32))) goto lab15; /* literal, line 142 */ + z->bra = z->c; /* ], line 142 */ + { int ret = slice_from_s(z, 3, s_33); /* <-, line 142 */ + if (ret < 0) return ret; + } + goto lab0; + lab15: + z->c = z->l - m1; + z->ket = z->c; /* [, line 144 */ + if (!(eq_s_b(z, 3, s_34))) goto lab16; /* literal, line 144 */ + if (!(find_among_b(z, a_5, 6))) goto lab16; /* among, line 144 */ + z->bra = z->c; /* ], line 144 */ + { int ret = slice_del(z); /* delete, line 144 */ + if (ret < 0) return ret; + } + goto lab0; + lab16: + z->c = z->l - m1; + z->ket = z->c; /* [, line 146 */ + if (!(eq_s_b(z, 3, s_35))) goto lab17; /* literal, line 146 */ + { int m7 = z->l - z->c; (void)m7; /* or, line 146 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((4030464 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab19; /* among, line 146 */ + if (!(find_among_b(z, a_6, 6))) goto lab19; + goto lab18; + lab19: + z->c = z->l - m7; + if (!(find_among_b(z, a_7, 6))) goto lab17; /* among, line 146 */ + } + lab18: + if (!(eq_s_b(z, 3, s_36))) goto lab17; /* literal, line 146 */ + z->bra = z->c; /* ], line 146 */ + { int ret = slice_from_s(z, 3, s_37); /* <-, line 146 */ + if (ret < 0) return ret; + } + goto lab0; + lab17: + z->c = z->l - m1; + z->ket = z->c; /* [, line 148 */ + if (!(find_among_b(z, a_8, 3))) goto lab20; /* among, line 148 */ + z->bra = z->c; /* ], line 148 */ + { int ret = slice_del(z); /* delete, line 148 */ + if (ret < 0) return ret; + } + goto lab0; + lab20: + z->c = z->l - m1; + z->ket = z->c; /* [, line 150 */ + if (!(eq_s_b(z, 6, s_38))) goto lab21; /* literal, line 150 */ + { int m_test8 = z->l - z->c; /* test, line 150 */ + { int m9 = z->l - z->c; (void)m9; /* not, line 150 */ + if (!(find_among_b(z, a_9, 8))) goto lab22; /* among, line 150 */ + goto lab21; + lab22: + z->c = z->l - m9; + } + z->c = z->l - m_test8; + } + z->bra = z->c; /* ], line 150 */ + { int ret = slice_del(z); /* delete, line 150 */ + if (ret < 0) return ret; + } + goto lab0; + lab21: + z->c = z->l - m1; + z->ket = z->c; /* [, line 152 */ + if (!(eq_s_b(z, 6, s_39))) goto lab23; /* literal, line 152 */ + { int m_test10 = z->l - z->c; /* test, line 152 */ + { int m11 = z->l - z->c; (void)m11; /* not, line 152 */ + if (!(eq_s_b(z, 3, s_40))) goto lab24; /* literal, line 152 */ + goto lab23; + lab24: + z->c = z->l - m11; + } + z->c = z->l - m_test10; + } + z->bra = z->c; /* ], line 152 */ + { int ret = slice_from_s(z, 6, s_41); /* <-, line 152 */ + if (ret < 0) return ret; + } + goto lab0; + lab23: + z->c = z->l - m1; + z->ket = z->c; /* [, line 154 */ + if (!(eq_s_b(z, 6, s_42))) goto lab25; /* literal, line 154 */ + z->bra = z->c; /* ], line 154 */ + { int ret = slice_del(z); /* delete, line 154 */ + if (ret < 0) return ret; + } + goto lab0; + lab25: + z->c = z->l - m1; + z->ket = z->c; /* [, line 156 */ + if (!(eq_s_b(z, 3, s_43))) return 0; /* literal, line 156 */ + { int m_test12 = z->l - z->c; /* test, line 156 */ + { int m13 = z->l - z->c; (void)m13; /* or, line 156 */ + if (!(find_among_b(z, a_10, 8))) goto lab27; /* among, line 156 */ + goto lab26; + lab27: + z->c = z->l - m13; + if (!(eq_s_b(z, 3, s_44))) return 0; /* literal, line 156 */ + } + lab26: + z->c = z->l - m_test12; + } + z->bra = z->c; /* ], line 156 */ + { int ret = slice_del(z); /* delete, line 156 */ + if (ret < 0) return ret; + } + } +lab0: + z->c = z->lb; + return 1; +} + +static int r_remove_pronoun_prefixes(struct SN_env * z) { /* forwardmode */ + z->B[0] = 0; /* unset found_a_match, line 161 */ + z->bra = z->c; /* [, line 162 */ + if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 4 || !((672 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; /* among, line 162 */ + if (!(find_among(z, a_11, 3))) return 0; + if (!(find_among(z, a_12, 10))) return 0; /* among, line 162 */ + if (!(eq_s(z, 3, s_45))) return 0; /* literal, line 162 */ + z->ket = z->c; /* ], line 162 */ + { int ret = slice_del(z); /* delete, line 162 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 163 */ + { int c1 = z->c; /* do, line 164 */ + { int ret = r_fix_va_start(z); /* call fix_va_start, line 164 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + return 1; +} + +static int r_remove_plural_suffix(struct SN_env * z) { /* forwardmode */ + z->B[0] = 0; /* unset found_a_match, line 168 */ + z->lb = z->c; z->c = z->l; /* backwards, line 169 */ + + { int m1 = z->l - z->c; (void)m1; /* or, line 170 */ + z->ket = z->c; /* [, line 170 */ + if (!(eq_s_b(z, 18, s_46))) goto lab1; /* literal, line 170 */ + { int m_test2 = z->l - z->c; /* test, line 170 */ + { int m3 = z->l - z->c; (void)m3; /* not, line 170 */ + if (!(find_among_b(z, a_13, 6))) goto lab2; /* among, line 170 */ + goto lab1; + lab2: + z->c = z->l - m3; + } + z->c = z->l - m_test2; + } + z->bra = z->c; /* ], line 170 */ + { int ret = slice_from_s(z, 3, s_47); /* <-, line 170 */ + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 171 */ + if (!(eq_s_b(z, 15, s_48))) goto lab3; /* literal, line 171 */ + z->bra = z->c; /* ], line 171 */ + { int ret = slice_from_s(z, 6, s_49); /* <-, line 171 */ + if (ret < 0) return ret; + } + goto lab0; + lab3: + z->c = z->l - m1; + z->ket = z->c; /* [, line 172 */ + if (!(eq_s_b(z, 15, s_50))) goto lab4; /* literal, line 172 */ + z->bra = z->c; /* ], line 172 */ + { int ret = slice_from_s(z, 6, s_51); /* <-, line 172 */ + if (ret < 0) return ret; + } + goto lab0; + lab4: + z->c = z->l - m1; + z->ket = z->c; /* [, line 173 */ + if (!(eq_s_b(z, 9, s_52))) return 0; /* literal, line 173 */ + z->bra = z->c; /* ], line 173 */ + { int ret = slice_del(z); /* delete, line 173 */ + if (ret < 0) return ret; + } + } +lab0: + z->B[0] = 1; /* set found_a_match, line 174 */ + z->c = z->lb; + return 1; +} + +static int r_remove_question_suffixes(struct SN_env * z) { /* forwardmode */ + { int ret = r_has_min_length(z); /* call has_min_length, line 179 */ + if (ret <= 0) return ret; + } + z->B[0] = 0; /* unset found_a_match, line 180 */ + z->lb = z->c; z->c = z->l; /* backwards, line 181 */ + + { int m1 = z->l - z->c; (void)m1; /* do, line 182 */ + z->ket = z->c; /* [, line 183 */ + if (!(find_among_b(z, a_14, 3))) goto lab0; /* among, line 183 */ + z->bra = z->c; /* ], line 183 */ + { int ret = slice_from_s(z, 3, s_53); /* <-, line 183 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 184 */ + lab0: + z->c = z->l - m1; + } + z->c = z->lb; + /* do, line 187 */ + { int ret = r_fix_endings(z); /* call fix_endings, line 187 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } +lab1: + return 1; +} + +static int r_remove_command_suffixes(struct SN_env * z) { /* forwardmode */ + { int ret = r_has_min_length(z); /* call has_min_length, line 191 */ + if (ret <= 0) return ret; + } + z->B[0] = 0; /* unset found_a_match, line 192 */ + z->lb = z->c; z->c = z->l; /* backwards, line 193 */ + + z->ket = z->c; /* [, line 194 */ + if (z->c - 5 <= z->lb || z->p[z->c - 1] != 191) return 0; /* among, line 194 */ + if (!(find_among_b(z, a_15, 2))) return 0; + z->bra = z->c; /* ], line 194 */ + { int ret = slice_del(z); /* delete, line 194 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 195 */ + z->c = z->lb; + return 1; +} + +static int r_remove_um(struct SN_env * z) { /* forwardmode */ + z->B[0] = 0; /* unset found_a_match, line 200 */ + { int ret = r_has_min_length(z); /* call has_min_length, line 201 */ + if (ret <= 0) return ret; + } + z->lb = z->c; z->c = z->l; /* backwards, line 202 */ + + z->ket = z->c; /* [, line 202 */ + if (!(eq_s_b(z, 9, s_54))) return 0; /* literal, line 202 */ + z->bra = z->c; /* ], line 202 */ + { int ret = slice_from_s(z, 3, s_55); /* <-, line 202 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 203 */ + z->c = z->lb; + { int c1 = z->c; /* do, line 205 */ + { int ret = r_fix_ending(z); /* call fix_ending, line 205 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + return 1; +} + +static int r_remove_common_word_endings(struct SN_env * z) { /* forwardmode */ + z->B[0] = 0; /* unset found_a_match, line 212 */ + { int ret = r_has_min_length(z); /* call has_min_length, line 213 */ + if (ret <= 0) return ret; + } + z->lb = z->c; z->c = z->l; /* backwards, line 214 */ + + { int m1 = z->l - z->c; (void)m1; /* or, line 231 */ + { int m_test2 = z->l - z->c; /* test, line 215 */ + z->ket = z->c; /* [, line 215 */ + { int m3 = z->l - z->c; (void)m3; /* or, line 215 */ + if (!(eq_s_b(z, 12, s_56))) goto lab3; /* literal, line 215 */ + goto lab2; + lab3: + z->c = z->l - m3; + if (!(eq_s_b(z, 15, s_57))) goto lab4; /* literal, line 216 */ + goto lab2; + lab4: + z->c = z->l - m3; + if (!(eq_s_b(z, 12, s_58))) goto lab5; /* literal, line 217 */ + goto lab2; + lab5: + z->c = z->l - m3; + if (!(eq_s_b(z, 15, s_59))) goto lab6; /* literal, line 218 */ + goto lab2; + lab6: + z->c = z->l - m3; + if (!(eq_s_b(z, 9, s_60))) goto lab7; /* literal, line 219 */ + goto lab2; + lab7: + z->c = z->l - m3; + if (!(eq_s_b(z, 12, s_61))) goto lab8; /* literal, line 220 */ + goto lab2; + lab8: + z->c = z->l - m3; + if (!(eq_s_b(z, 15, s_62))) goto lab9; /* literal, line 221 */ + goto lab2; + lab9: + z->c = z->l - m3; + if (!(eq_s_b(z, 12, s_63))) goto lab10; /* literal, line 222 */ + goto lab2; + lab10: + z->c = z->l - m3; + if (!(eq_s_b(z, 12, s_64))) goto lab11; /* literal, line 223 */ + goto lab2; + lab11: + z->c = z->l - m3; + if (!(eq_s_b(z, 9, s_65))) goto lab12; /* literal, line 224 */ + goto lab2; + lab12: + z->c = z->l - m3; + if (!(eq_s_b(z, 15, s_66))) goto lab13; /* literal, line 225 */ + goto lab2; + lab13: + z->c = z->l - m3; + if (!(eq_s_b(z, 9, s_67))) goto lab14; /* literal, line 226 */ + { int m_test4 = z->l - z->c; /* test, line 226 */ + { int m5 = z->l - z->c; (void)m5; /* not, line 226 */ + if (!(find_among_b(z, a_16, 8))) goto lab15; /* among, line 226 */ + goto lab14; + lab15: + z->c = z->l - m5; + } + z->c = z->l - m_test4; + } + goto lab2; + lab14: + z->c = z->l - m3; + if (!(eq_s_b(z, 6, s_68))) goto lab16; /* literal, line 227 */ + goto lab2; + lab16: + z->c = z->l - m3; + if (!(eq_s_b(z, 9, s_69))) goto lab1; /* literal, line 228 */ + } + lab2: + z->bra = z->c; /* ], line 228 */ + { int ret = slice_from_s(z, 3, s_70); /* <-, line 228 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 229 */ + z->c = z->l - m_test2; + } + goto lab0; + lab1: + z->c = z->l - m1; + { int m_test6 = z->l - z->c; /* test, line 232 */ + z->ket = z->c; /* [, line 232 */ + if (!(find_among_b(z, a_17, 13))) return 0; /* among, line 232 */ + z->bra = z->c; /* ], line 245 */ + { int ret = slice_del(z); /* delete, line 245 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 246 */ + z->c = z->l - m_test6; + } + } +lab0: + z->c = z->lb; + /* do, line 249 */ + { int ret = r_fix_endings(z); /* call fix_endings, line 249 */ + if (ret == 0) goto lab17; + if (ret < 0) return ret; + } +lab17: + return 1; +} + +static int r_remove_vetrumai_urupukal(struct SN_env * z) { /* forwardmode */ + z->B[0] = 0; /* unset found_a_match, line 253 */ + z->B[1] = 0; /* unset found_vetrumai_urupu, line 254 */ + { int ret = r_has_min_length(z); /* call has_min_length, line 255 */ + if (ret <= 0) return ret; + } + z->lb = z->c; z->c = z->l; /* backwards, line 256 */ + + { int m1 = z->l - z->c; (void)m1; /* or, line 259 */ + { int m_test2 = z->l - z->c; /* test, line 258 */ + z->ket = z->c; /* [, line 258 */ + if (!(eq_s_b(z, 6, s_71))) goto lab1; /* literal, line 258 */ + z->bra = z->c; /* ], line 258 */ + { int ret = slice_del(z); /* delete, line 258 */ + if (ret < 0) return ret; + } + z->c = z->l - m_test2; + } + goto lab0; + lab1: + z->c = z->l - m1; + { int m_test3 = z->l - z->c; /* test, line 260 */ + z->ket = z->c; /* [, line 260 */ + { int m4 = z->l - z->c; (void)m4; /* or, line 261 */ + { int m5 = z->l - z->c; (void)m5; /* or, line 260 */ + if (!(eq_s_b(z, 9, s_72))) goto lab6; /* literal, line 260 */ + goto lab5; + lab6: + z->c = z->l - m5; + if (!(eq_s_b(z, 3, s_73))) goto lab4; /* literal, line 261 */ + } + lab5: + { int m_test6 = z->l - z->c; /* test, line 261 */ + { int m7 = z->l - z->c; (void)m7; /* not, line 261 */ + if (!(find_among_b(z, a_18, 6))) goto lab7; /* among, line 261 */ + goto lab4; + lab7: + z->c = z->l - m7; + } + z->c = z->l - m_test6; + } + goto lab3; + lab4: + z->c = z->l - m4; + if (!(eq_s_b(z, 3, s_74))) goto lab2; /* literal, line 262 */ + { int m_test8 = z->l - z->c; /* test, line 262 */ + if (!(find_among_b(z, a_19, 6))) goto lab2; /* among, line 262 */ + if (!(eq_s_b(z, 3, s_75))) goto lab2; /* literal, line 262 */ + z->c = z->l - m_test8; + } + } + lab3: + z->bra = z->c; /* ], line 263 */ + { int ret = slice_from_s(z, 3, s_76); /* <-, line 263 */ + if (ret < 0) return ret; + } + z->c = z->l - m_test3; + } + goto lab0; + lab2: + z->c = z->l - m1; + { int m_test9 = z->l - z->c; /* test, line 266 */ + z->ket = z->c; /* [, line 266 */ + { int m10 = z->l - z->c; (void)m10; /* or, line 267 */ + if (!(eq_s_b(z, 9, s_77))) goto lab10; /* literal, line 267 */ + goto lab9; + lab10: + z->c = z->l - m10; + if (!(eq_s_b(z, 9, s_78))) goto lab11; /* literal, line 268 */ + goto lab9; + lab11: + z->c = z->l - m10; + if (!(eq_s_b(z, 9, s_79))) goto lab12; /* literal, line 269 */ + goto lab9; + lab12: + z->c = z->l - m10; + if (!(eq_s_b(z, 9, s_80))) goto lab13; /* literal, line 270 */ + goto lab9; + lab13: + z->c = z->l - m10; + if (!(eq_s_b(z, 9, s_81))) goto lab14; /* literal, line 271 */ + { int m_test11 = z->l - z->c; /* test, line 271 */ + { int m12 = z->l - z->c; (void)m12; /* not, line 271 */ + if (!(eq_s_b(z, 3, s_82))) goto lab15; /* literal, line 271 */ + goto lab14; + lab15: + z->c = z->l - m12; + } + z->c = z->l - m_test11; + } + goto lab9; + lab14: + z->c = z->l - m10; + if (!(eq_s_b(z, 15, s_83))) goto lab16; /* literal, line 272 */ + goto lab9; + lab16: + z->c = z->l - m10; + if (!(eq_s_b(z, 21, s_84))) goto lab17; /* literal, line 273 */ + goto lab9; + lab17: + z->c = z->l - m10; + if (!(eq_s_b(z, 9, s_85))) goto lab18; /* literal, line 274 */ + goto lab9; + lab18: + z->c = z->l - m10; + if (!(len_utf8(z->p) >= 7)) goto lab19; /* $(<integer expression> >= <integer expression>), line 275 */ + if (!(eq_s_b(z, 12, s_86))) goto lab19; /* literal, line 275 */ + goto lab9; + lab19: + z->c = z->l - m10; + if (!(eq_s_b(z, 9, s_87))) goto lab20; /* literal, line 276 */ + goto lab9; + lab20: + z->c = z->l - m10; + if (!(eq_s_b(z, 9, s_88))) goto lab21; /* literal, line 277 */ + goto lab9; + lab21: + z->c = z->l - m10; + if (!(eq_s_b(z, 12, s_89))) goto lab22; /* literal, line 278 */ + goto lab9; + lab22: + z->c = z->l - m10; + if (!(eq_s_b(z, 6, s_90))) goto lab23; /* literal, line 279 */ + { int m_test13 = z->l - z->c; /* test, line 279 */ + { int m14 = z->l - z->c; (void)m14; /* not, line 279 */ + if (!(find_among_b(z, a_20, 8))) goto lab24; /* among, line 279 */ + goto lab23; + lab24: + z->c = z->l - m14; + } + z->c = z->l - m_test13; + } + goto lab9; + lab23: + z->c = z->l - m10; + if (!(eq_s_b(z, 9, s_91))) goto lab8; /* literal, line 280 */ + } + lab9: + z->bra = z->c; /* ], line 281 */ + { int ret = slice_from_s(z, 3, s_92); /* <-, line 281 */ + if (ret < 0) return ret; + } + z->c = z->l - m_test9; + } + goto lab0; + lab8: + z->c = z->l - m1; + { int m_test15 = z->l - z->c; /* test, line 284 */ + z->ket = z->c; /* [, line 284 */ + { int m16 = z->l - z->c; (void)m16; /* or, line 285 */ + if (!(eq_s_b(z, 9, s_93))) goto lab27; /* literal, line 285 */ + goto lab26; + lab27: + z->c = z->l - m16; + if (!(eq_s_b(z, 12, s_94))) goto lab28; /* literal, line 286 */ + goto lab26; + lab28: + z->c = z->l - m16; + if (!(eq_s_b(z, 12, s_95))) goto lab29; /* literal, line 287 */ + goto lab26; + lab29: + z->c = z->l - m16; + if (!(eq_s_b(z, 12, s_96))) goto lab30; /* literal, line 288 */ + goto lab26; + lab30: + z->c = z->l - m16; + if (!(eq_s_b(z, 12, s_97))) goto lab31; /* literal, line 289 */ + goto lab26; + lab31: + z->c = z->l - m16; + if (!(eq_s_b(z, 12, s_98))) goto lab32; /* literal, line 290 */ + goto lab26; + lab32: + z->c = z->l - m16; + if (!(eq_s_b(z, 6, s_99))) goto lab25; /* literal, line 291 */ + { int m_test17 = z->l - z->c; /* test, line 291 */ + { int m18 = z->l - z->c; (void)m18; /* not, line 291 */ + if (!(find_among_b(z, a_21, 8))) goto lab33; /* among, line 291 */ + goto lab25; + lab33: + z->c = z->l - m18; + } + z->c = z->l - m_test17; + } + } + lab26: + z->bra = z->c; /* ], line 292 */ + { int ret = slice_del(z); /* delete, line 292 */ + if (ret < 0) return ret; + } + z->c = z->l - m_test15; + } + goto lab0; + lab25: + z->c = z->l - m1; + { int m_test19 = z->l - z->c; /* test, line 295 */ + z->ket = z->c; /* [, line 295 */ + if (!(eq_s_b(z, 3, s_100))) return 0; /* literal, line 295 */ + z->bra = z->c; /* ], line 295 */ + { int ret = slice_from_s(z, 3, s_101); /* <-, line 295 */ + if (ret < 0) return ret; + } + z->c = z->l - m_test19; + } + } +lab0: + z->B[0] = 1; /* set found_a_match, line 297 */ + z->B[1] = 1; /* set found_vetrumai_urupu, line 298 */ + { int m20 = z->l - z->c; (void)m20; /* do, line 299 */ + z->ket = z->c; /* [, line 299 */ + if (!(eq_s_b(z, 9, s_102))) goto lab34; /* literal, line 299 */ + z->bra = z->c; /* ], line 299 */ + { int ret = slice_from_s(z, 3, s_103); /* <-, line 299 */ + if (ret < 0) return ret; + } + lab34: + z->c = z->l - m20; + } + z->c = z->lb; + /* do, line 301 */ + { int ret = r_fix_endings(z); /* call fix_endings, line 301 */ + if (ret == 0) goto lab35; + if (ret < 0) return ret; + } +lab35: + return 1; +} + +static int r_remove_tense_suffixes(struct SN_env * z) { /* forwardmode */ + z->B[0] = 1; /* set found_a_match, line 305 */ + while(1) { /* repeat, line 306 */ + int c1 = z->c; + if (!(z->B[0])) goto lab0; /* Boolean test found_a_match, line 306 */ + { int c2 = z->c; /* do, line 306 */ + { int ret = r_remove_tense_suffix(z); /* call remove_tense_suffix, line 306 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + lab1: + z->c = c2; + } + continue; + lab0: + z->c = c1; + break; + } + return 1; +} + +static int r_remove_tense_suffix(struct SN_env * z) { /* forwardmode */ + z->B[0] = 0; /* unset found_a_match, line 310 */ + { int ret = r_has_min_length(z); /* call has_min_length, line 311 */ + if (ret <= 0) return ret; + } + z->lb = z->c; z->c = z->l; /* backwards, line 312 */ + + { int m1 = z->l - z->c; (void)m1; /* do, line 313 */ + { int m2 = z->l - z->c; (void)m2; /* or, line 320 */ + { int m_test3 = z->l - z->c; /* test, line 314 */ + z->ket = z->c; /* [, line 314 */ + if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 141)) goto lab2; /* among, line 314 */ + if (!(find_among_b(z, a_22, 2))) goto lab2; + z->bra = z->c; /* ], line 317 */ + { int ret = slice_del(z); /* delete, line 317 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 318 */ + z->c = z->l - m_test3; + } + goto lab1; + lab2: + z->c = z->l - m2; + { int m_test4 = z->l - z->c; /* test, line 321 */ + z->ket = z->c; /* [, line 321 */ + { int m5 = z->l - z->c; (void)m5; /* or, line 322 */ + if (!(eq_s_b(z, 12, s_104))) goto lab5; /* literal, line 322 */ + goto lab4; + lab5: + z->c = z->l - m5; + if (!(eq_s_b(z, 12, s_105))) goto lab6; /* literal, line 323 */ + goto lab4; + lab6: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_106))) goto lab7; /* literal, line 324 */ + goto lab4; + lab7: + z->c = z->l - m5; + if (!(eq_s_b(z, 12, s_107))) goto lab8; /* literal, line 325 */ + goto lab4; + lab8: + z->c = z->l - m5; + if (!(eq_s_b(z, 12, s_108))) goto lab9; /* literal, line 326 */ + goto lab4; + lab9: + z->c = z->l - m5; + if (!(eq_s_b(z, 12, s_109))) goto lab10; /* literal, line 327 */ + goto lab4; + lab10: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_110))) goto lab11; /* literal, line 328 */ + { int m_test6 = z->l - z->c; /* test, line 328 */ + { int m7 = z->l - z->c; (void)m7; /* not, line 328 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((1951712 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab12; /* among, line 328 */ + if (!(find_among_b(z, a_23, 12))) goto lab12; + goto lab11; + lab12: + z->c = z->l - m7; + } + z->c = z->l - m_test6; + } + goto lab4; + lab11: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_111))) goto lab13; /* literal, line 329 */ + goto lab4; + lab13: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_112))) goto lab14; /* literal, line 330 */ + goto lab4; + lab14: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_113))) goto lab15; /* literal, line 331 */ + goto lab4; + lab15: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_114))) goto lab16; /* literal, line 332 */ + goto lab4; + lab16: + z->c = z->l - m5; + if (!(eq_s_b(z, 3, s_115))) goto lab17; /* literal, line 333 */ + goto lab4; + lab17: + z->c = z->l - m5; + if (!(eq_s_b(z, 3, s_116))) goto lab18; /* literal, line 333 */ + goto lab4; + lab18: + z->c = z->l - m5; + if (!(eq_s_b(z, 3, s_117))) goto lab19; /* literal, line 333 */ + goto lab4; + lab19: + z->c = z->l - m5; + if (!(eq_s_b(z, 3, s_118))) goto lab20; /* literal, line 333 */ + goto lab4; + lab20: + z->c = z->l - m5; + if (!(eq_s_b(z, 3, s_119))) goto lab21; /* literal, line 333 */ + goto lab4; + lab21: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_120))) goto lab22; /* literal, line 334 */ + goto lab4; + lab22: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_121))) goto lab23; /* literal, line 335 */ + goto lab4; + lab23: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_122))) goto lab24; /* literal, line 336 */ + goto lab4; + lab24: + z->c = z->l - m5; + if (!(eq_s_b(z, 6, s_123))) goto lab25; /* literal, line 337 */ + { int m_test8 = z->l - z->c; /* test, line 337 */ + { int m9 = z->l - z->c; (void)m9; /* not, line 337 */ + if (!(find_among_b(z, a_24, 8))) goto lab26; /* among, line 337 */ + goto lab25; + lab26: + z->c = z->l - m9; + } + z->c = z->l - m_test8; + } + goto lab4; + lab25: + z->c = z->l - m5; + if (!(eq_s_b(z, 15, s_124))) goto lab27; /* literal, line 338 */ + goto lab4; + lab27: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_125))) goto lab28; /* literal, line 339 */ + goto lab4; + lab28: + z->c = z->l - m5; + if (!(eq_s_b(z, 9, s_126))) goto lab29; /* literal, line 340 */ + goto lab4; + lab29: + z->c = z->l - m5; + if (!(eq_s_b(z, 12, s_127))) goto lab30; /* literal, line 341 */ + goto lab4; + lab30: + z->c = z->l - m5; + if (!(eq_s_b(z, 12, s_128))) goto lab31; /* literal, line 342 */ + goto lab4; + lab31: + z->c = z->l - m5; + if (!(eq_s_b(z, 12, s_129))) goto lab32; /* literal, line 343 */ + goto lab4; + lab32: + z->c = z->l - m5; + if (!(eq_s_b(z, 12, s_130))) goto lab33; /* literal, line 344 */ + goto lab4; + lab33: + z->c = z->l - m5; + if (!(eq_s_b(z, 6, s_131))) goto lab34; /* literal, line 345 */ + goto lab4; + lab34: + z->c = z->l - m5; + if (!(eq_s_b(z, 6, s_132))) goto lab3; /* literal, line 346 */ + } + lab4: + z->bra = z->c; /* ], line 347 */ + { int ret = slice_del(z); /* delete, line 347 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 348 */ + z->c = z->l - m_test4; + } + goto lab1; + lab3: + z->c = z->l - m2; + { int m_test10 = z->l - z->c; /* test, line 351 */ + z->ket = z->c; /* [, line 351 */ + { int m11 = z->l - z->c; (void)m11; /* or, line 352 */ + if (!(eq_s_b(z, 9, s_133))) goto lab37; /* literal, line 352 */ + { int m_test12 = z->l - z->c; /* test, line 352 */ + { int m13 = z->l - z->c; (void)m13; /* not, line 352 */ + if (!(eq_s_b(z, 3, s_134))) goto lab38; /* literal, line 352 */ + goto lab37; + lab38: + z->c = z->l - m13; + } + z->c = z->l - m_test12; + } + goto lab36; + lab37: + z->c = z->l - m11; + if (!(eq_s_b(z, 9, s_135))) goto lab39; /* literal, line 353 */ + goto lab36; + lab39: + z->c = z->l - m11; + if (!(eq_s_b(z, 9, s_136))) goto lab40; /* literal, line 354 */ + goto lab36; + lab40: + z->c = z->l - m11; + if (!(eq_s_b(z, 9, s_137))) goto lab41; /* literal, line 355 */ + goto lab36; + lab41: + z->c = z->l - m11; + if (!(eq_s_b(z, 3, s_138))) goto lab42; /* literal, line 356 */ + goto lab36; + lab42: + z->c = z->l - m11; + if (!(eq_s_b(z, 9, s_139))) goto lab43; /* literal, line 357 */ + goto lab36; + lab43: + z->c = z->l - m11; + if (!(eq_s_b(z, 9, s_140))) goto lab44; /* literal, line 358 */ + goto lab36; + lab44: + z->c = z->l - m11; + if (!(eq_s_b(z, 9, s_141))) goto lab45; /* literal, line 359 */ + goto lab36; + lab45: + z->c = z->l - m11; + if (!(eq_s_b(z, 9, s_142))) goto lab46; /* literal, line 360 */ + goto lab36; + lab46: + z->c = z->l - m11; + if (!(eq_s_b(z, 12, s_143))) goto lab47; /* literal, line 361 */ + goto lab36; + lab47: + z->c = z->l - m11; + if (!(eq_s_b(z, 12, s_144))) goto lab48; /* literal, line 362 */ + goto lab36; + lab48: + z->c = z->l - m11; + if (!(eq_s_b(z, 12, s_145))) goto lab49; /* literal, line 363 */ + goto lab36; + lab49: + z->c = z->l - m11; + if (!(eq_s_b(z, 12, s_146))) goto lab50; /* literal, line 364 */ + goto lab36; + lab50: + z->c = z->l - m11; + if (!(eq_s_b(z, 9, s_147))) goto lab51; /* literal, line 365 */ + goto lab36; + lab51: + z->c = z->l - m11; + if (!(eq_s_b(z, 12, s_148))) goto lab52; /* literal, line 366 */ + goto lab36; + lab52: + z->c = z->l - m11; + if (!(eq_s_b(z, 12, s_149))) goto lab53; /* literal, line 367 */ + goto lab36; + lab53: + z->c = z->l - m11; + if (!(eq_s_b(z, 9, s_150))) goto lab54; /* literal, line 368 */ + goto lab36; + lab54: + z->c = z->l - m11; + if (!(eq_s_b(z, 12, s_151))) goto lab35; /* literal, line 369 */ + } + lab36: + z->bra = z->c; /* ], line 370 */ + { int ret = slice_from_s(z, 3, s_152); /* <-, line 370 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 371 */ + z->c = z->l - m_test10; + } + goto lab1; + lab35: + z->c = z->l - m2; + { int m_test14 = z->l - z->c; /* test, line 374 */ + z->ket = z->c; /* [, line 374 */ + { int m15 = z->l - z->c; (void)m15; /* or, line 374 */ + if (!(eq_s_b(z, 6, s_153))) goto lab56; /* literal, line 374 */ + goto lab55; + lab56: + z->c = z->l - m15; + if (!(eq_s_b(z, 6, s_154))) goto lab0; /* literal, line 374 */ + } + lab55: + { int m_test16 = z->l - z->c; /* test, line 374 */ + if (!(eq_s_b(z, 3, s_155))) goto lab0; /* literal, line 374 */ + z->c = z->l - m_test16; + } + z->bra = z->c; /* ], line 374 */ + { int ret = slice_del(z); /* delete, line 374 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 375 */ + z->c = z->l - m_test14; + } + } + lab1: + lab0: + z->c = z->l - m1; + } + { int m17 = z->l - z->c; (void)m17; /* do, line 378 */ + z->ket = z->c; /* [, line 378 */ + if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 177)) goto lab57; /* among, line 378 */ + if (!(find_among_b(z, a_25, 6))) goto lab57; + z->bra = z->c; /* ], line 385 */ + { int ret = slice_del(z); /* delete, line 385 */ + if (ret < 0) return ret; + } + z->B[0] = 1; /* set found_a_match, line 386 */ + lab57: + z->c = z->l - m17; + } + z->c = z->lb; + /* do, line 389 */ + { int ret = r_fix_endings(z); /* call fix_endings, line 389 */ + if (ret == 0) goto lab58; + if (ret < 0) return ret; + } +lab58: + return 1; +} + +extern int tamil_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + z->B[1] = 0; /* unset found_vetrumai_urupu, line 393 */ + { int c1 = z->c; /* do, line 394 */ + { int ret = r_fix_ending(z); /* call fix_ending, line 394 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = c1; + } + { int ret = r_has_min_length(z); /* call has_min_length, line 395 */ + if (ret <= 0) return ret; + } + { int c2 = z->c; /* do, line 396 */ + { int ret = r_remove_question_prefixes(z); /* call remove_question_prefixes, line 396 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + lab1: + z->c = c2; + } + { int c3 = z->c; /* do, line 397 */ + { int ret = r_remove_pronoun_prefixes(z); /* call remove_pronoun_prefixes, line 397 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + lab2: + z->c = c3; + } + { int c4 = z->c; /* do, line 398 */ + { int ret = r_remove_question_suffixes(z); /* call remove_question_suffixes, line 398 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + lab3: + z->c = c4; + } + { int c5 = z->c; /* do, line 399 */ + { int ret = r_remove_um(z); /* call remove_um, line 399 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + lab4: + z->c = c5; + } + { int c6 = z->c; /* do, line 400 */ + { int ret = r_remove_common_word_endings(z); /* call remove_common_word_endings, line 400 */ + if (ret == 0) goto lab5; + if (ret < 0) return ret; + } + lab5: + z->c = c6; + } + { int c7 = z->c; /* do, line 401 */ + { int ret = r_remove_vetrumai_urupukal(z); /* call remove_vetrumai_urupukal, line 401 */ + if (ret == 0) goto lab6; + if (ret < 0) return ret; + } + lab6: + z->c = c7; + } + { int c8 = z->c; /* do, line 402 */ + { int ret = r_remove_plural_suffix(z); /* call remove_plural_suffix, line 402 */ + if (ret == 0) goto lab7; + if (ret < 0) return ret; + } + lab7: + z->c = c8; + } + { int c9 = z->c; /* do, line 403 */ + { int ret = r_remove_command_suffixes(z); /* call remove_command_suffixes, line 403 */ + if (ret == 0) goto lab8; + if (ret < 0) return ret; + } + lab8: + z->c = c9; + } + { int c10 = z->c; /* do, line 404 */ + { int ret = r_remove_tense_suffixes(z); /* call remove_tense_suffixes, line 404 */ + if (ret == 0) goto lab9; + if (ret < 0) return ret; + } + lab9: + z->c = c10; + } + return 1; +} + +extern struct SN_env * tamil_UTF_8_create_env(void) { return SN_create_env(0, 0, 2); } + +extern void tamil_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_turkish.c b/src/backend/snowball/libstemmer/stem_UTF_8_turkish.c new file mode 100644 index 0000000..85eee41 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_turkish.c @@ -0,0 +1,2105 @@ +/* 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 turkish_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_stem_suffix_chain_before_ki(struct SN_env * z); +static int r_stem_noun_suffixes(struct SN_env * z); +static int r_stem_nominal_verb_suffixes(struct SN_env * z); +static int r_postlude(struct SN_env * z); +static int r_post_process_last_consonants(struct SN_env * z); +static int r_more_than_one_syllable_word(struct SN_env * z); +static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z); +static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z); +static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z); +static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z); +static int r_mark_ysA(struct SN_env * z); +static int r_mark_ymUs_(struct SN_env * z); +static int r_mark_yken(struct SN_env * z); +static int r_mark_yDU(struct SN_env * z); +static int r_mark_yUz(struct SN_env * z); +static int r_mark_yUm(struct SN_env * z); +static int r_mark_yU(struct SN_env * z); +static int r_mark_ylA(struct SN_env * z); +static int r_mark_yA(struct SN_env * z); +static int r_mark_possessives(struct SN_env * z); +static int r_mark_sUnUz(struct SN_env * z); +static int r_mark_sUn(struct SN_env * z); +static int r_mark_sU(struct SN_env * z); +static int r_mark_nUz(struct SN_env * z); +static int r_mark_nUn(struct SN_env * z); +static int r_mark_nU(struct SN_env * z); +static int r_mark_ndAn(struct SN_env * z); +static int r_mark_ndA(struct SN_env * z); +static int r_mark_ncA(struct SN_env * z); +static int r_mark_nA(struct SN_env * z); +static int r_mark_lArI(struct SN_env * z); +static int r_mark_lAr(struct SN_env * z); +static int r_mark_ki(struct SN_env * z); +static int r_mark_DUr(struct SN_env * z); +static int r_mark_DAn(struct SN_env * z); +static int r_mark_DA(struct SN_env * z); +static int r_mark_cAsInA(struct SN_env * z); +static int r_is_reserved_word(struct SN_env * z); +static int r_check_vowel_harmony(struct SN_env * z); +static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * turkish_UTF_8_create_env(void); +extern void turkish_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[1] = { 'm' }; +static const symbol s_0_1[1] = { 'n' }; +static const symbol s_0_2[3] = { 'm', 'i', 'z' }; +static const symbol s_0_3[3] = { 'n', 'i', 'z' }; +static const symbol s_0_4[3] = { 'm', 'u', 'z' }; +static const symbol s_0_5[3] = { 'n', 'u', 'z' }; +static const symbol s_0_6[4] = { 'm', 0xC4, 0xB1, 'z' }; +static const symbol s_0_7[4] = { 'n', 0xC4, 0xB1, 'z' }; +static const symbol s_0_8[4] = { 'm', 0xC3, 0xBC, 'z' }; +static const symbol s_0_9[4] = { 'n', 0xC3, 0xBC, 'z' }; + +static const struct among a_0[10] = +{ +/* 0 */ { 1, s_0_0, -1, -1, 0}, +/* 1 */ { 1, s_0_1, -1, -1, 0}, +/* 2 */ { 3, s_0_2, -1, -1, 0}, +/* 3 */ { 3, s_0_3, -1, -1, 0}, +/* 4 */ { 3, s_0_4, -1, -1, 0}, +/* 5 */ { 3, s_0_5, -1, -1, 0}, +/* 6 */ { 4, s_0_6, -1, -1, 0}, +/* 7 */ { 4, s_0_7, -1, -1, 0}, +/* 8 */ { 4, s_0_8, -1, -1, 0}, +/* 9 */ { 4, s_0_9, -1, -1, 0} +}; + +static const symbol s_1_0[4] = { 'l', 'e', 'r', 'i' }; +static const symbol s_1_1[5] = { 'l', 'a', 'r', 0xC4, 0xB1 }; + +static const struct among a_1[2] = +{ +/* 0 */ { 4, s_1_0, -1, -1, 0}, +/* 1 */ { 5, s_1_1, -1, -1, 0} +}; + +static const symbol s_2_0[2] = { 'n', 'i' }; +static const symbol s_2_1[2] = { 'n', 'u' }; +static const symbol s_2_2[3] = { 'n', 0xC4, 0xB1 }; +static const symbol s_2_3[3] = { 'n', 0xC3, 0xBC }; + +static const struct among a_2[4] = +{ +/* 0 */ { 2, s_2_0, -1, -1, 0}, +/* 1 */ { 2, s_2_1, -1, -1, 0}, +/* 2 */ { 3, s_2_2, -1, -1, 0}, +/* 3 */ { 3, s_2_3, -1, -1, 0} +}; + +static const symbol s_3_0[2] = { 'i', 'n' }; +static const symbol s_3_1[2] = { 'u', 'n' }; +static const symbol s_3_2[3] = { 0xC4, 0xB1, 'n' }; +static const symbol s_3_3[3] = { 0xC3, 0xBC, 'n' }; + +static const struct among a_3[4] = +{ +/* 0 */ { 2, s_3_0, -1, -1, 0}, +/* 1 */ { 2, s_3_1, -1, -1, 0}, +/* 2 */ { 3, s_3_2, -1, -1, 0}, +/* 3 */ { 3, s_3_3, -1, -1, 0} +}; + +static const symbol s_4_0[1] = { 'a' }; +static const symbol s_4_1[1] = { 'e' }; + +static const struct among a_4[2] = +{ +/* 0 */ { 1, s_4_0, -1, -1, 0}, +/* 1 */ { 1, s_4_1, -1, -1, 0} +}; + +static const symbol s_5_0[2] = { 'n', 'a' }; +static const symbol s_5_1[2] = { 'n', 'e' }; + +static const struct among a_5[2] = +{ +/* 0 */ { 2, s_5_0, -1, -1, 0}, +/* 1 */ { 2, s_5_1, -1, -1, 0} +}; + +static const symbol s_6_0[2] = { 'd', 'a' }; +static const symbol s_6_1[2] = { 't', 'a' }; +static const symbol s_6_2[2] = { 'd', 'e' }; +static const symbol s_6_3[2] = { 't', 'e' }; + +static const struct among a_6[4] = +{ +/* 0 */ { 2, s_6_0, -1, -1, 0}, +/* 1 */ { 2, s_6_1, -1, -1, 0}, +/* 2 */ { 2, s_6_2, -1, -1, 0}, +/* 3 */ { 2, s_6_3, -1, -1, 0} +}; + +static const symbol s_7_0[3] = { 'n', 'd', 'a' }; +static const symbol s_7_1[3] = { 'n', 'd', 'e' }; + +static const struct among a_7[2] = +{ +/* 0 */ { 3, s_7_0, -1, -1, 0}, +/* 1 */ { 3, s_7_1, -1, -1, 0} +}; + +static const symbol s_8_0[3] = { 'd', 'a', 'n' }; +static const symbol s_8_1[3] = { 't', 'a', 'n' }; +static const symbol s_8_2[3] = { 'd', 'e', 'n' }; +static const symbol s_8_3[3] = { 't', 'e', 'n' }; + +static const struct among a_8[4] = +{ +/* 0 */ { 3, s_8_0, -1, -1, 0}, +/* 1 */ { 3, s_8_1, -1, -1, 0}, +/* 2 */ { 3, s_8_2, -1, -1, 0}, +/* 3 */ { 3, s_8_3, -1, -1, 0} +}; + +static const symbol s_9_0[4] = { 'n', 'd', 'a', 'n' }; +static const symbol s_9_1[4] = { 'n', 'd', 'e', 'n' }; + +static const struct among a_9[2] = +{ +/* 0 */ { 4, s_9_0, -1, -1, 0}, +/* 1 */ { 4, s_9_1, -1, -1, 0} +}; + +static const symbol s_10_0[2] = { 'l', 'a' }; +static const symbol s_10_1[2] = { 'l', 'e' }; + +static const struct among a_10[2] = +{ +/* 0 */ { 2, s_10_0, -1, -1, 0}, +/* 1 */ { 2, s_10_1, -1, -1, 0} +}; + +static const symbol s_11_0[2] = { 'c', 'a' }; +static const symbol s_11_1[2] = { 'c', 'e' }; + +static const struct among a_11[2] = +{ +/* 0 */ { 2, s_11_0, -1, -1, 0}, +/* 1 */ { 2, s_11_1, -1, -1, 0} +}; + +static const symbol s_12_0[2] = { 'i', 'm' }; +static const symbol s_12_1[2] = { 'u', 'm' }; +static const symbol s_12_2[3] = { 0xC4, 0xB1, 'm' }; +static const symbol s_12_3[3] = { 0xC3, 0xBC, 'm' }; + +static const struct among a_12[4] = +{ +/* 0 */ { 2, s_12_0, -1, -1, 0}, +/* 1 */ { 2, s_12_1, -1, -1, 0}, +/* 2 */ { 3, s_12_2, -1, -1, 0}, +/* 3 */ { 3, s_12_3, -1, -1, 0} +}; + +static const symbol s_13_0[3] = { 's', 'i', 'n' }; +static const symbol s_13_1[3] = { 's', 'u', 'n' }; +static const symbol s_13_2[4] = { 's', 0xC4, 0xB1, 'n' }; +static const symbol s_13_3[4] = { 's', 0xC3, 0xBC, 'n' }; + +static const struct among a_13[4] = +{ +/* 0 */ { 3, s_13_0, -1, -1, 0}, +/* 1 */ { 3, s_13_1, -1, -1, 0}, +/* 2 */ { 4, s_13_2, -1, -1, 0}, +/* 3 */ { 4, s_13_3, -1, -1, 0} +}; + +static const symbol s_14_0[2] = { 'i', 'z' }; +static const symbol s_14_1[2] = { 'u', 'z' }; +static const symbol s_14_2[3] = { 0xC4, 0xB1, 'z' }; +static const symbol s_14_3[3] = { 0xC3, 0xBC, 'z' }; + +static const struct among a_14[4] = +{ +/* 0 */ { 2, s_14_0, -1, -1, 0}, +/* 1 */ { 2, s_14_1, -1, -1, 0}, +/* 2 */ { 3, s_14_2, -1, -1, 0}, +/* 3 */ { 3, s_14_3, -1, -1, 0} +}; + +static const symbol s_15_0[5] = { 's', 'i', 'n', 'i', 'z' }; +static const symbol s_15_1[5] = { 's', 'u', 'n', 'u', 'z' }; +static const symbol s_15_2[7] = { 's', 0xC4, 0xB1, 'n', 0xC4, 0xB1, 'z' }; +static const symbol s_15_3[7] = { 's', 0xC3, 0xBC, 'n', 0xC3, 0xBC, 'z' }; + +static const struct among a_15[4] = +{ +/* 0 */ { 5, s_15_0, -1, -1, 0}, +/* 1 */ { 5, s_15_1, -1, -1, 0}, +/* 2 */ { 7, s_15_2, -1, -1, 0}, +/* 3 */ { 7, s_15_3, -1, -1, 0} +}; + +static const symbol s_16_0[3] = { 'l', 'a', 'r' }; +static const symbol s_16_1[3] = { 'l', 'e', 'r' }; + +static const struct among a_16[2] = +{ +/* 0 */ { 3, s_16_0, -1, -1, 0}, +/* 1 */ { 3, s_16_1, -1, -1, 0} +}; + +static const symbol s_17_0[3] = { 'n', 'i', 'z' }; +static const symbol s_17_1[3] = { 'n', 'u', 'z' }; +static const symbol s_17_2[4] = { 'n', 0xC4, 0xB1, 'z' }; +static const symbol s_17_3[4] = { 'n', 0xC3, 0xBC, 'z' }; + +static const struct among a_17[4] = +{ +/* 0 */ { 3, s_17_0, -1, -1, 0}, +/* 1 */ { 3, s_17_1, -1, -1, 0}, +/* 2 */ { 4, s_17_2, -1, -1, 0}, +/* 3 */ { 4, s_17_3, -1, -1, 0} +}; + +static const symbol s_18_0[3] = { 'd', 'i', 'r' }; +static const symbol s_18_1[3] = { 't', 'i', 'r' }; +static const symbol s_18_2[3] = { 'd', 'u', 'r' }; +static const symbol s_18_3[3] = { 't', 'u', 'r' }; +static const symbol s_18_4[4] = { 'd', 0xC4, 0xB1, 'r' }; +static const symbol s_18_5[4] = { 't', 0xC4, 0xB1, 'r' }; +static const symbol s_18_6[4] = { 'd', 0xC3, 0xBC, 'r' }; +static const symbol s_18_7[4] = { 't', 0xC3, 0xBC, 'r' }; + +static const struct among a_18[8] = +{ +/* 0 */ { 3, s_18_0, -1, -1, 0}, +/* 1 */ { 3, s_18_1, -1, -1, 0}, +/* 2 */ { 3, s_18_2, -1, -1, 0}, +/* 3 */ { 3, s_18_3, -1, -1, 0}, +/* 4 */ { 4, s_18_4, -1, -1, 0}, +/* 5 */ { 4, s_18_5, -1, -1, 0}, +/* 6 */ { 4, s_18_6, -1, -1, 0}, +/* 7 */ { 4, s_18_7, -1, -1, 0} +}; + +static const symbol s_19_0[7] = { 'c', 'a', 's', 0xC4, 0xB1, 'n', 'a' }; +static const symbol s_19_1[6] = { 'c', 'e', 's', 'i', 'n', 'e' }; + +static const struct among a_19[2] = +{ +/* 0 */ { 7, s_19_0, -1, -1, 0}, +/* 1 */ { 6, s_19_1, -1, -1, 0} +}; + +static const symbol s_20_0[2] = { 'd', 'i' }; +static const symbol s_20_1[2] = { 't', 'i' }; +static const symbol s_20_2[3] = { 'd', 'i', 'k' }; +static const symbol s_20_3[3] = { 't', 'i', 'k' }; +static const symbol s_20_4[3] = { 'd', 'u', 'k' }; +static const symbol s_20_5[3] = { 't', 'u', 'k' }; +static const symbol s_20_6[4] = { 'd', 0xC4, 0xB1, 'k' }; +static const symbol s_20_7[4] = { 't', 0xC4, 0xB1, 'k' }; +static const symbol s_20_8[4] = { 'd', 0xC3, 0xBC, 'k' }; +static const symbol s_20_9[4] = { 't', 0xC3, 0xBC, 'k' }; +static const symbol s_20_10[3] = { 'd', 'i', 'm' }; +static const symbol s_20_11[3] = { 't', 'i', 'm' }; +static const symbol s_20_12[3] = { 'd', 'u', 'm' }; +static const symbol s_20_13[3] = { 't', 'u', 'm' }; +static const symbol s_20_14[4] = { 'd', 0xC4, 0xB1, 'm' }; +static const symbol s_20_15[4] = { 't', 0xC4, 0xB1, 'm' }; +static const symbol s_20_16[4] = { 'd', 0xC3, 0xBC, 'm' }; +static const symbol s_20_17[4] = { 't', 0xC3, 0xBC, 'm' }; +static const symbol s_20_18[3] = { 'd', 'i', 'n' }; +static const symbol s_20_19[3] = { 't', 'i', 'n' }; +static const symbol s_20_20[3] = { 'd', 'u', 'n' }; +static const symbol s_20_21[3] = { 't', 'u', 'n' }; +static const symbol s_20_22[4] = { 'd', 0xC4, 0xB1, 'n' }; +static const symbol s_20_23[4] = { 't', 0xC4, 0xB1, 'n' }; +static const symbol s_20_24[4] = { 'd', 0xC3, 0xBC, 'n' }; +static const symbol s_20_25[4] = { 't', 0xC3, 0xBC, 'n' }; +static const symbol s_20_26[2] = { 'd', 'u' }; +static const symbol s_20_27[2] = { 't', 'u' }; +static const symbol s_20_28[3] = { 'd', 0xC4, 0xB1 }; +static const symbol s_20_29[3] = { 't', 0xC4, 0xB1 }; +static const symbol s_20_30[3] = { 'd', 0xC3, 0xBC }; +static const symbol s_20_31[3] = { 't', 0xC3, 0xBC }; + +static const struct among a_20[32] = +{ +/* 0 */ { 2, s_20_0, -1, -1, 0}, +/* 1 */ { 2, s_20_1, -1, -1, 0}, +/* 2 */ { 3, s_20_2, -1, -1, 0}, +/* 3 */ { 3, s_20_3, -1, -1, 0}, +/* 4 */ { 3, s_20_4, -1, -1, 0}, +/* 5 */ { 3, s_20_5, -1, -1, 0}, +/* 6 */ { 4, s_20_6, -1, -1, 0}, +/* 7 */ { 4, s_20_7, -1, -1, 0}, +/* 8 */ { 4, s_20_8, -1, -1, 0}, +/* 9 */ { 4, s_20_9, -1, -1, 0}, +/* 10 */ { 3, s_20_10, -1, -1, 0}, +/* 11 */ { 3, s_20_11, -1, -1, 0}, +/* 12 */ { 3, s_20_12, -1, -1, 0}, +/* 13 */ { 3, s_20_13, -1, -1, 0}, +/* 14 */ { 4, s_20_14, -1, -1, 0}, +/* 15 */ { 4, s_20_15, -1, -1, 0}, +/* 16 */ { 4, s_20_16, -1, -1, 0}, +/* 17 */ { 4, s_20_17, -1, -1, 0}, +/* 18 */ { 3, s_20_18, -1, -1, 0}, +/* 19 */ { 3, s_20_19, -1, -1, 0}, +/* 20 */ { 3, s_20_20, -1, -1, 0}, +/* 21 */ { 3, s_20_21, -1, -1, 0}, +/* 22 */ { 4, s_20_22, -1, -1, 0}, +/* 23 */ { 4, s_20_23, -1, -1, 0}, +/* 24 */ { 4, s_20_24, -1, -1, 0}, +/* 25 */ { 4, s_20_25, -1, -1, 0}, +/* 26 */ { 2, s_20_26, -1, -1, 0}, +/* 27 */ { 2, s_20_27, -1, -1, 0}, +/* 28 */ { 3, s_20_28, -1, -1, 0}, +/* 29 */ { 3, s_20_29, -1, -1, 0}, +/* 30 */ { 3, s_20_30, -1, -1, 0}, +/* 31 */ { 3, s_20_31, -1, -1, 0} +}; + +static const symbol s_21_0[2] = { 's', 'a' }; +static const symbol s_21_1[2] = { 's', 'e' }; +static const symbol s_21_2[3] = { 's', 'a', 'k' }; +static const symbol s_21_3[3] = { 's', 'e', 'k' }; +static const symbol s_21_4[3] = { 's', 'a', 'm' }; +static const symbol s_21_5[3] = { 's', 'e', 'm' }; +static const symbol s_21_6[3] = { 's', 'a', 'n' }; +static const symbol s_21_7[3] = { 's', 'e', 'n' }; + +static const struct among a_21[8] = +{ +/* 0 */ { 2, s_21_0, -1, -1, 0}, +/* 1 */ { 2, s_21_1, -1, -1, 0}, +/* 2 */ { 3, s_21_2, -1, -1, 0}, +/* 3 */ { 3, s_21_3, -1, -1, 0}, +/* 4 */ { 3, s_21_4, -1, -1, 0}, +/* 5 */ { 3, s_21_5, -1, -1, 0}, +/* 6 */ { 3, s_21_6, -1, -1, 0}, +/* 7 */ { 3, s_21_7, -1, -1, 0} +}; + +static const symbol s_22_0[4] = { 'm', 'i', 0xC5, 0x9F }; +static const symbol s_22_1[4] = { 'm', 'u', 0xC5, 0x9F }; +static const symbol s_22_2[5] = { 'm', 0xC4, 0xB1, 0xC5, 0x9F }; +static const symbol s_22_3[5] = { 'm', 0xC3, 0xBC, 0xC5, 0x9F }; + +static const struct among a_22[4] = +{ +/* 0 */ { 4, s_22_0, -1, -1, 0}, +/* 1 */ { 4, s_22_1, -1, -1, 0}, +/* 2 */ { 5, s_22_2, -1, -1, 0}, +/* 3 */ { 5, s_22_3, -1, -1, 0} +}; + +static const symbol s_23_0[1] = { 'b' }; +static const symbol s_23_1[1] = { 'c' }; +static const symbol s_23_2[1] = { 'd' }; +static const symbol s_23_3[2] = { 0xC4, 0x9F }; + +static const struct among a_23[4] = +{ +/* 0 */ { 1, s_23_0, -1, 1, 0}, +/* 1 */ { 1, s_23_1, -1, 2, 0}, +/* 2 */ { 1, s_23_2, -1, 3, 0}, +/* 3 */ { 2, s_23_3, -1, 4, 0} +}; + +static const unsigned char g_vowel[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 }; + +static const unsigned char g_U[] = { 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1 }; + +static const unsigned char g_vowel1[] = { 1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; + +static const unsigned char g_vowel2[] = { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 }; + +static const unsigned char g_vowel3[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; + +static const unsigned char g_vowel4[] = { 17 }; + +static const unsigned char g_vowel5[] = { 65 }; + +static const unsigned char g_vowel6[] = { 65 }; + +static const symbol s_0[] = { 0xC4, 0xB1 }; +static const symbol s_1[] = { 0xC3, 0xB6 }; +static const symbol s_2[] = { 0xC3, 0xBC }; +static const symbol s_3[] = { 'k', 'i' }; +static const symbol s_4[] = { 'k', 'e', 'n' }; +static const symbol s_5[] = { 'p' }; +static const symbol s_6[] = { 0xC3, 0xA7 }; +static const symbol s_7[] = { 't' }; +static const symbol s_8[] = { 'k' }; +static const symbol s_9[] = { 0xC4, 0xB1 }; +static const symbol s_10[] = { 0xC4, 0xB1 }; +static const symbol s_11[] = { 'i' }; +static const symbol s_12[] = { 'u' }; +static const symbol s_13[] = { 0xC3, 0xB6 }; +static const symbol s_14[] = { 0xC3, 0xBC }; +static const symbol s_15[] = { 0xC3, 0xBC }; +static const symbol s_16[] = { 'a', 'd' }; +static const symbol s_17[] = { 's', 'o', 'y' }; + +static int r_check_vowel_harmony(struct SN_env * z) { /* backwardmode */ + { int m_test1 = z->l - z->c; /* test, line 110 */ + if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 112 */ + { int m2 = z->l - z->c; (void)m2; /* or, line 114 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab1; /* literal, line 114 */ + z->c--; + if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab1; /* goto */ /* grouping vowel1, line 114 */ + goto lab0; + lab1: + z->c = z->l - m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab2; /* literal, line 115 */ + z->c--; + if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab2; /* goto */ /* grouping vowel2, line 115 */ + goto lab0; + lab2: + z->c = z->l - m2; + if (!(eq_s_b(z, 2, s_0))) goto lab3; /* literal, line 116 */ + if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab3; /* goto */ /* grouping vowel3, line 116 */ + goto lab0; + lab3: + z->c = z->l - m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab4; /* literal, line 117 */ + z->c--; + if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab4; /* goto */ /* grouping vowel4, line 117 */ + goto lab0; + lab4: + z->c = z->l - m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 118 */ + z->c--; + if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab5; /* goto */ /* grouping vowel5, line 118 */ + goto lab0; + lab5: + z->c = z->l - m2; + if (!(eq_s_b(z, 2, s_1))) goto lab6; /* literal, line 119 */ + if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab6; /* goto */ /* grouping vowel6, line 119 */ + goto lab0; + lab6: + z->c = z->l - m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab7; /* literal, line 120 */ + z->c--; + if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab7; /* goto */ /* grouping vowel5, line 120 */ + goto lab0; + lab7: + z->c = z->l - m2; + if (!(eq_s_b(z, 2, s_2))) return 0; /* literal, line 121 */ + if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0; /* goto */ /* grouping vowel6, line 121 */ + } + lab0: + z->c = z->l - m_test1; + } + return 1; +} + +static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* or, line 132 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab1; /* literal, line 131 */ + z->c--; + { int m_test2 = z->l - z->c; /* test, line 131 */ + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 131 */ + z->c = z->l - m_test2; + } + goto lab0; + lab1: + z->c = z->l - m1; + { int m3 = z->l - z->c; (void)m3; /* not, line 133 */ + { int m_test4 = z->l - z->c; /* test, line 133 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab2; /* literal, line 133 */ + z->c--; + z->c = z->l - m_test4; + } + return 0; + lab2: + z->c = z->l - m3; + } + { int m_test5 = z->l - z->c; /* test, line 133 */ + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 133 */ + } + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 133 */ + z->c = z->l - m_test5; + } + } +lab0: + return 1; +} + +static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* or, line 143 */ + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 142 */ + z->c--; + { int m_test2 = z->l - z->c; /* test, line 142 */ + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 142 */ + z->c = z->l - m_test2; + } + goto lab0; + lab1: + z->c = z->l - m1; + { int m3 = z->l - z->c; (void)m3; /* not, line 144 */ + { int m_test4 = z->l - z->c; /* test, line 144 */ + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2; /* literal, line 144 */ + z->c--; + z->c = z->l - m_test4; + } + return 0; + lab2: + z->c = z->l - m3; + } + { int m_test5 = z->l - z->c; /* test, line 144 */ + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 144 */ + } + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 144 */ + z->c = z->l - m_test5; + } + } +lab0: + return 1; +} + +static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* or, line 153 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 152 */ + z->c--; + { int m_test2 = z->l - z->c; /* test, line 152 */ + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 152 */ + z->c = z->l - m_test2; + } + goto lab0; + lab1: + z->c = z->l - m1; + { int m3 = z->l - z->c; (void)m3; /* not, line 154 */ + { int m_test4 = z->l - z->c; /* test, line 154 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab2; /* literal, line 154 */ + z->c--; + z->c = z->l - m_test4; + } + return 0; + lab2: + z->c = z->l - m3; + } + { int m_test5 = z->l - z->c; /* test, line 154 */ + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 154 */ + } + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 154 */ + z->c = z->l - m_test5; + } + } +lab0: + return 1; +} + +static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* or, line 159 */ + if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab1; /* grouping U, line 158 */ + { int m_test2 = z->l - z->c; /* test, line 158 */ + if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* non vowel, line 158 */ + z->c = z->l - m_test2; + } + goto lab0; + lab1: + z->c = z->l - m1; + { int m3 = z->l - z->c; (void)m3; /* not, line 160 */ + { int m_test4 = z->l - z->c; /* test, line 160 */ + if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab2; /* grouping U, line 160 */ + z->c = z->l - m_test4; + } + return 0; + lab2: + z->c = z->l - m3; + } + { int m_test5 = z->l - z->c; /* test, line 160 */ + { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + if (ret < 0) return 0; + z->c = ret; /* next, line 160 */ + } + if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* non vowel, line 160 */ + z->c = z->l - m_test5; + } + } +lab0: + return 1; +} + +static int r_mark_possessives(struct SN_env * z) { /* backwardmode */ + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 165 */ + if (!(find_among_b(z, a_0, 10))) return 0; + { int ret = r_mark_suffix_with_optional_U_vowel(z); /* call mark_suffix_with_optional_U_vowel, line 167 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_sU(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 171 */ + if (ret <= 0) return ret; + } + if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0; /* grouping U, line 172 */ + { int ret = r_mark_suffix_with_optional_s_consonant(z); /* call mark_suffix_with_optional_s_consonant, line 173 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_lArI(struct SN_env * z) { /* backwardmode */ + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 177)) return 0; /* among, line 177 */ + if (!(find_among_b(z, a_1, 2))) return 0; + return 1; +} + +static int r_mark_yU(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 181 */ + if (ret <= 0) return ret; + } + if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0; /* grouping U, line 182 */ + { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 183 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_nU(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 187 */ + if (ret <= 0) return ret; + } + if (!(find_among_b(z, a_2, 4))) return 0; /* among, line 188 */ + return 1; +} + +static int r_mark_nUn(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 192 */ + if (ret <= 0) return ret; + } + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 193 */ + if (!(find_among_b(z, a_3, 4))) return 0; + { int ret = r_mark_suffix_with_optional_n_consonant(z); /* call mark_suffix_with_optional_n_consonant, line 194 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_yA(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 198 */ + if (ret <= 0) return ret; + } + if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 199 */ + if (!(find_among_b(z, a_4, 2))) return 0; + { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 200 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_nA(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 204 */ + if (ret <= 0) return ret; + } + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 205 */ + if (!(find_among_b(z, a_5, 2))) return 0; + return 1; +} + +static int r_mark_DA(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 209 */ + if (ret <= 0) return ret; + } + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 210 */ + if (!(find_among_b(z, a_6, 4))) return 0; + return 1; +} + +static int r_mark_ndA(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 214 */ + if (ret <= 0) return ret; + } + if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 215 */ + if (!(find_among_b(z, a_7, 2))) return 0; + return 1; +} + +static int r_mark_DAn(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 219 */ + if (ret <= 0) return ret; + } + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 220 */ + if (!(find_among_b(z, a_8, 4))) return 0; + return 1; +} + +static int r_mark_ndAn(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 224 */ + if (ret <= 0) return ret; + } + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 225 */ + if (!(find_among_b(z, a_9, 2))) return 0; + return 1; +} + +static int r_mark_ylA(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 229 */ + if (ret <= 0) return ret; + } + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 230 */ + if (!(find_among_b(z, a_10, 2))) return 0; + { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 231 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_ki(struct SN_env * z) { /* backwardmode */ + if (!(eq_s_b(z, 2, s_3))) return 0; /* literal, line 235 */ + return 1; +} + +static int r_mark_ncA(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 239 */ + if (ret <= 0) return ret; + } + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 240 */ + if (!(find_among_b(z, a_11, 2))) return 0; + { int ret = r_mark_suffix_with_optional_n_consonant(z); /* call mark_suffix_with_optional_n_consonant, line 241 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_yUm(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 245 */ + if (ret <= 0) return ret; + } + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0; /* among, line 246 */ + if (!(find_among_b(z, a_12, 4))) return 0; + { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 247 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_sUn(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 251 */ + if (ret <= 0) return ret; + } + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 252 */ + if (!(find_among_b(z, a_13, 4))) return 0; + return 1; +} + +static int r_mark_yUz(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 256 */ + if (ret <= 0) return ret; + } + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0; /* among, line 257 */ + if (!(find_among_b(z, a_14, 4))) return 0; + { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 258 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_sUnUz(struct SN_env * z) { /* backwardmode */ + if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0; /* among, line 262 */ + if (!(find_among_b(z, a_15, 4))) return 0; + return 1; +} + +static int r_mark_lAr(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 266 */ + if (ret <= 0) return ret; + } + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0; /* among, line 267 */ + if (!(find_among_b(z, a_16, 2))) return 0; + return 1; +} + +static int r_mark_nUz(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 271 */ + if (ret <= 0) return ret; + } + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0; /* among, line 272 */ + if (!(find_among_b(z, a_17, 4))) return 0; + return 1; +} + +static int r_mark_DUr(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 276 */ + if (ret <= 0) return ret; + } + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0; /* among, line 277 */ + if (!(find_among_b(z, a_18, 8))) return 0; + return 1; +} + +static int r_mark_cAsInA(struct SN_env * z) { /* backwardmode */ + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 281 */ + if (!(find_among_b(z, a_19, 2))) return 0; + return 1; +} + +static int r_mark_yDU(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 285 */ + if (ret <= 0) return ret; + } + if (!(find_among_b(z, a_20, 32))) return 0; /* among, line 286 */ + { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 290 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_ysA(struct SN_env * z) { /* backwardmode */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 295 */ + if (!(find_among_b(z, a_21, 8))) return 0; + { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 296 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_ymUs_(struct SN_env * z) { /* backwardmode */ + { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 300 */ + if (ret <= 0) return ret; + } + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0; /* among, line 301 */ + if (!(find_among_b(z, a_22, 4))) return 0; + { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 302 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_mark_yken(struct SN_env * z) { /* backwardmode */ + if (!(eq_s_b(z, 3, s_4))) return 0; /* literal, line 306 */ + { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 306 */ + if (ret <= 0) return ret; + } + return 1; +} + +static int r_stem_nominal_verb_suffixes(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 310 */ + z->B[0] = 1; /* set continue_stemming_noun_suffixes, line 311 */ + { int m1 = z->l - z->c; (void)m1; /* or, line 313 */ + { int m2 = z->l - z->c; (void)m2; /* or, line 312 */ + { int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 312 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + goto lab2; + lab3: + z->c = z->l - m2; + { int ret = r_mark_yDU(z); /* call mark_yDU, line 312 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + goto lab2; + lab4: + z->c = z->l - m2; + { int ret = r_mark_ysA(z); /* call mark_ysA, line 312 */ + if (ret == 0) goto lab5; + if (ret < 0) return ret; + } + goto lab2; + lab5: + z->c = z->l - m2; + { int ret = r_mark_yken(z); /* call mark_yken, line 312 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + } + lab2: + goto lab0; + lab1: + z->c = z->l - m1; + { int ret = r_mark_cAsInA(z); /* call mark_cAsInA, line 314 */ + if (ret == 0) goto lab6; + if (ret < 0) return ret; + } + { int m3 = z->l - z->c; (void)m3; /* or, line 314 */ + { int ret = r_mark_sUnUz(z); /* call mark_sUnUz, line 314 */ + if (ret == 0) goto lab8; + if (ret < 0) return ret; + } + goto lab7; + lab8: + z->c = z->l - m3; + { int ret = r_mark_lAr(z); /* call mark_lAr, line 314 */ + if (ret == 0) goto lab9; + if (ret < 0) return ret; + } + goto lab7; + lab9: + z->c = z->l - m3; + { int ret = r_mark_yUm(z); /* call mark_yUm, line 314 */ + if (ret == 0) goto lab10; + if (ret < 0) return ret; + } + goto lab7; + lab10: + z->c = z->l - m3; + { int ret = r_mark_sUn(z); /* call mark_sUn, line 314 */ + if (ret == 0) goto lab11; + if (ret < 0) return ret; + } + goto lab7; + lab11: + z->c = z->l - m3; + { int ret = r_mark_yUz(z); /* call mark_yUz, line 314 */ + if (ret == 0) goto lab12; + if (ret < 0) return ret; + } + goto lab7; + lab12: + z->c = z->l - m3; + } + lab7: + { int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 314 */ + if (ret == 0) goto lab6; + if (ret < 0) return ret; + } + goto lab0; + lab6: + z->c = z->l - m1; + { int ret = r_mark_lAr(z); /* call mark_lAr, line 317 */ + if (ret == 0) goto lab13; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 317 */ + { int ret = slice_del(z); /* delete, line 317 */ + if (ret < 0) return ret; + } + { int m4 = z->l - z->c; (void)m4; /* try, line 317 */ + z->ket = z->c; /* [, line 317 */ + { int m5 = z->l - z->c; (void)m5; /* or, line 317 */ + { int ret = r_mark_DUr(z); /* call mark_DUr, line 317 */ + if (ret == 0) goto lab16; + if (ret < 0) return ret; + } + goto lab15; + lab16: + z->c = z->l - m5; + { int ret = r_mark_yDU(z); /* call mark_yDU, line 317 */ + if (ret == 0) goto lab17; + if (ret < 0) return ret; + } + goto lab15; + lab17: + z->c = z->l - m5; + { int ret = r_mark_ysA(z); /* call mark_ysA, line 317 */ + if (ret == 0) goto lab18; + if (ret < 0) return ret; + } + goto lab15; + lab18: + z->c = z->l - m5; + { int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 317 */ + if (ret == 0) { z->c = z->l - m4; goto lab14; } + if (ret < 0) return ret; + } + } + lab15: + lab14: + ; + } + z->B[0] = 0; /* unset continue_stemming_noun_suffixes, line 318 */ + goto lab0; + lab13: + z->c = z->l - m1; + { int ret = r_mark_nUz(z); /* call mark_nUz, line 321 */ + if (ret == 0) goto lab19; + if (ret < 0) return ret; + } + { int m6 = z->l - z->c; (void)m6; /* or, line 321 */ + { int ret = r_mark_yDU(z); /* call mark_yDU, line 321 */ + if (ret == 0) goto lab21; + if (ret < 0) return ret; + } + goto lab20; + lab21: + z->c = z->l - m6; + { int ret = r_mark_ysA(z); /* call mark_ysA, line 321 */ + if (ret == 0) goto lab19; + if (ret < 0) return ret; + } + } + lab20: + goto lab0; + lab19: + z->c = z->l - m1; + { int m7 = z->l - z->c; (void)m7; /* or, line 323 */ + { int ret = r_mark_sUnUz(z); /* call mark_sUnUz, line 323 */ + if (ret == 0) goto lab24; + if (ret < 0) return ret; + } + goto lab23; + lab24: + z->c = z->l - m7; + { int ret = r_mark_yUz(z); /* call mark_yUz, line 323 */ + if (ret == 0) goto lab25; + if (ret < 0) return ret; + } + goto lab23; + lab25: + z->c = z->l - m7; + { int ret = r_mark_sUn(z); /* call mark_sUn, line 323 */ + if (ret == 0) goto lab26; + if (ret < 0) return ret; + } + goto lab23; + lab26: + z->c = z->l - m7; + { int ret = r_mark_yUm(z); /* call mark_yUm, line 323 */ + if (ret == 0) goto lab22; + if (ret < 0) return ret; + } + } + lab23: + z->bra = z->c; /* ], line 323 */ + { int ret = slice_del(z); /* delete, line 323 */ + if (ret < 0) return ret; + } + { int m8 = z->l - z->c; (void)m8; /* try, line 323 */ + z->ket = z->c; /* [, line 323 */ + { int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 323 */ + if (ret == 0) { z->c = z->l - m8; goto lab27; } + if (ret < 0) return ret; + } + lab27: + ; + } + goto lab0; + lab22: + z->c = z->l - m1; + { int ret = r_mark_DUr(z); /* call mark_DUr, line 325 */ + if (ret <= 0) return ret; + } + z->bra = z->c; /* ], line 325 */ + { int ret = slice_del(z); /* delete, line 325 */ + if (ret < 0) return ret; + } + { int m9 = z->l - z->c; (void)m9; /* try, line 325 */ + z->ket = z->c; /* [, line 325 */ + { int m10 = z->l - z->c; (void)m10; /* or, line 325 */ + { int ret = r_mark_sUnUz(z); /* call mark_sUnUz, line 325 */ + if (ret == 0) goto lab30; + if (ret < 0) return ret; + } + goto lab29; + lab30: + z->c = z->l - m10; + { int ret = r_mark_lAr(z); /* call mark_lAr, line 325 */ + if (ret == 0) goto lab31; + if (ret < 0) return ret; + } + goto lab29; + lab31: + z->c = z->l - m10; + { int ret = r_mark_yUm(z); /* call mark_yUm, line 325 */ + if (ret == 0) goto lab32; + if (ret < 0) return ret; + } + goto lab29; + lab32: + z->c = z->l - m10; + { int ret = r_mark_sUn(z); /* call mark_sUn, line 325 */ + if (ret == 0) goto lab33; + if (ret < 0) return ret; + } + goto lab29; + lab33: + z->c = z->l - m10; + { int ret = r_mark_yUz(z); /* call mark_yUz, line 325 */ + if (ret == 0) goto lab34; + if (ret < 0) return ret; + } + goto lab29; + lab34: + z->c = z->l - m10; + } + lab29: + { int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 325 */ + if (ret == 0) { z->c = z->l - m9; goto lab28; } + if (ret < 0) return ret; + } + lab28: + ; + } + } +lab0: + z->bra = z->c; /* ], line 326 */ + { int ret = slice_del(z); /* delete, line 326 */ + if (ret < 0) return ret; + } + return 1; +} + +static int r_stem_suffix_chain_before_ki(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 331 */ + { int ret = r_mark_ki(z); /* call mark_ki, line 332 */ + if (ret <= 0) return ret; + } + { int m1 = z->l - z->c; (void)m1; /* or, line 340 */ + { int ret = r_mark_DA(z); /* call mark_DA, line 334 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 334 */ + { int ret = slice_del(z); /* delete, line 334 */ + if (ret < 0) return ret; + } + { int m2 = z->l - z->c; (void)m2; /* try, line 334 */ + z->ket = z->c; /* [, line 334 */ + { int m3 = z->l - z->c; (void)m3; /* or, line 336 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 335 */ + if (ret == 0) goto lab4; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 335 */ + { int ret = slice_del(z); /* delete, line 335 */ + if (ret < 0) return ret; + } + { int m4 = z->l - z->c; (void)m4; /* try, line 335 */ + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 335 */ + if (ret == 0) { z->c = z->l - m4; goto lab5; } + if (ret < 0) return ret; + } + lab5: + ; + } + goto lab3; + lab4: + z->c = z->l - m3; + { int ret = r_mark_possessives(z); /* call mark_possessives, line 337 */ + if (ret == 0) { z->c = z->l - m2; goto lab2; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 337 */ + { int ret = slice_del(z); /* delete, line 337 */ + if (ret < 0) return ret; + } + { int m5 = z->l - z->c; (void)m5; /* try, line 337 */ + z->ket = z->c; /* [, line 337 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 337 */ + if (ret == 0) { z->c = z->l - m5; goto lab6; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 337 */ + { int ret = slice_del(z); /* delete, line 337 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 337 */ + if (ret == 0) { z->c = z->l - m5; goto lab6; } + if (ret < 0) return ret; + } + lab6: + ; + } + } + lab3: + lab2: + ; + } + goto lab0; + lab1: + z->c = z->l - m1; + { int ret = r_mark_nUn(z); /* call mark_nUn, line 341 */ + if (ret == 0) goto lab7; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 341 */ + { int ret = slice_del(z); /* delete, line 341 */ + if (ret < 0) return ret; + } + { int m6 = z->l - z->c; (void)m6; /* try, line 341 */ + z->ket = z->c; /* [, line 341 */ + { int m7 = z->l - z->c; (void)m7; /* or, line 343 */ + { int ret = r_mark_lArI(z); /* call mark_lArI, line 342 */ + if (ret == 0) goto lab10; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 342 */ + { int ret = slice_del(z); /* delete, line 342 */ + if (ret < 0) return ret; + } + goto lab9; + lab10: + z->c = z->l - m7; + z->ket = z->c; /* [, line 344 */ + { int m8 = z->l - z->c; (void)m8; /* or, line 344 */ + { int ret = r_mark_possessives(z); /* call mark_possessives, line 344 */ + if (ret == 0) goto lab13; + if (ret < 0) return ret; + } + goto lab12; + lab13: + z->c = z->l - m8; + { int ret = r_mark_sU(z); /* call mark_sU, line 344 */ + if (ret == 0) goto lab11; + if (ret < 0) return ret; + } + } + lab12: + z->bra = z->c; /* ], line 344 */ + { int ret = slice_del(z); /* delete, line 344 */ + if (ret < 0) return ret; + } + { int m9 = z->l - z->c; (void)m9; /* try, line 344 */ + z->ket = z->c; /* [, line 344 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 344 */ + if (ret == 0) { z->c = z->l - m9; goto lab14; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 344 */ + { int ret = slice_del(z); /* delete, line 344 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 344 */ + if (ret == 0) { z->c = z->l - m9; goto lab14; } + if (ret < 0) return ret; + } + lab14: + ; + } + goto lab9; + lab11: + z->c = z->l - m7; + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 346 */ + if (ret == 0) { z->c = z->l - m6; goto lab8; } + if (ret < 0) return ret; + } + } + lab9: + lab8: + ; + } + goto lab0; + lab7: + z->c = z->l - m1; + { int ret = r_mark_ndA(z); /* call mark_ndA, line 349 */ + if (ret <= 0) return ret; + } + { int m10 = z->l - z->c; (void)m10; /* or, line 351 */ + { int ret = r_mark_lArI(z); /* call mark_lArI, line 350 */ + if (ret == 0) goto lab16; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 350 */ + { int ret = slice_del(z); /* delete, line 350 */ + if (ret < 0) return ret; + } + goto lab15; + lab16: + z->c = z->l - m10; + { int ret = r_mark_sU(z); /* call mark_sU, line 352 */ + if (ret == 0) goto lab17; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 352 */ + { int ret = slice_del(z); /* delete, line 352 */ + if (ret < 0) return ret; + } + { int m11 = z->l - z->c; (void)m11; /* try, line 352 */ + z->ket = z->c; /* [, line 352 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 352 */ + if (ret == 0) { z->c = z->l - m11; goto lab18; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 352 */ + { int ret = slice_del(z); /* delete, line 352 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 352 */ + if (ret == 0) { z->c = z->l - m11; goto lab18; } + if (ret < 0) return ret; + } + lab18: + ; + } + goto lab15; + lab17: + z->c = z->l - m10; + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 354 */ + if (ret <= 0) return ret; + } + } + lab15: + ; + } +lab0: + return 1; +} + +static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ + { int m1 = z->l - z->c; (void)m1; /* or, line 361 */ + z->ket = z->c; /* [, line 360 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 360 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 360 */ + { int ret = slice_del(z); /* delete, line 360 */ + if (ret < 0) return ret; + } + { int m2 = z->l - z->c; (void)m2; /* try, line 360 */ + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 360 */ + if (ret == 0) { z->c = z->l - m2; goto lab2; } + if (ret < 0) return ret; + } + lab2: + ; + } + goto lab0; + lab1: + z->c = z->l - m1; + z->ket = z->c; /* [, line 362 */ + { int ret = r_mark_ncA(z); /* call mark_ncA, line 362 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 362 */ + { int ret = slice_del(z); /* delete, line 362 */ + if (ret < 0) return ret; + } + { int m3 = z->l - z->c; (void)m3; /* try, line 363 */ + { int m4 = z->l - z->c; (void)m4; /* or, line 365 */ + z->ket = z->c; /* [, line 364 */ + { int ret = r_mark_lArI(z); /* call mark_lArI, line 364 */ + if (ret == 0) goto lab6; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 364 */ + { int ret = slice_del(z); /* delete, line 364 */ + if (ret < 0) return ret; + } + goto lab5; + lab6: + z->c = z->l - m4; + z->ket = z->c; /* [, line 366 */ + { int m5 = z->l - z->c; (void)m5; /* or, line 366 */ + { int ret = r_mark_possessives(z); /* call mark_possessives, line 366 */ + if (ret == 0) goto lab9; + if (ret < 0) return ret; + } + goto lab8; + lab9: + z->c = z->l - m5; + { int ret = r_mark_sU(z); /* call mark_sU, line 366 */ + if (ret == 0) goto lab7; + if (ret < 0) return ret; + } + } + lab8: + z->bra = z->c; /* ], line 366 */ + { int ret = slice_del(z); /* delete, line 366 */ + if (ret < 0) return ret; + } + { int m6 = z->l - z->c; (void)m6; /* try, line 366 */ + z->ket = z->c; /* [, line 366 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 366 */ + if (ret == 0) { z->c = z->l - m6; goto lab10; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 366 */ + { int ret = slice_del(z); /* delete, line 366 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 366 */ + if (ret == 0) { z->c = z->l - m6; goto lab10; } + if (ret < 0) return ret; + } + lab10: + ; + } + goto lab5; + lab7: + z->c = z->l - m4; + z->ket = z->c; /* [, line 368 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 368 */ + if (ret == 0) { z->c = z->l - m3; goto lab4; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 368 */ + { int ret = slice_del(z); /* delete, line 368 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 368 */ + if (ret == 0) { z->c = z->l - m3; goto lab4; } + if (ret < 0) return ret; + } + } + lab5: + lab4: + ; + } + goto lab0; + lab3: + z->c = z->l - m1; + z->ket = z->c; /* [, line 372 */ + { int m7 = z->l - z->c; (void)m7; /* or, line 372 */ + { int ret = r_mark_ndA(z); /* call mark_ndA, line 372 */ + if (ret == 0) goto lab13; + if (ret < 0) return ret; + } + goto lab12; + lab13: + z->c = z->l - m7; + { int ret = r_mark_nA(z); /* call mark_nA, line 372 */ + if (ret == 0) goto lab11; + if (ret < 0) return ret; + } + } + lab12: + { int m8 = z->l - z->c; (void)m8; /* or, line 375 */ + { int ret = r_mark_lArI(z); /* call mark_lArI, line 374 */ + if (ret == 0) goto lab15; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 374 */ + { int ret = slice_del(z); /* delete, line 374 */ + if (ret < 0) return ret; + } + goto lab14; + lab15: + z->c = z->l - m8; + { int ret = r_mark_sU(z); /* call mark_sU, line 376 */ + if (ret == 0) goto lab16; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 376 */ + { int ret = slice_del(z); /* delete, line 376 */ + if (ret < 0) return ret; + } + { int m9 = z->l - z->c; (void)m9; /* try, line 376 */ + z->ket = z->c; /* [, line 376 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 376 */ + if (ret == 0) { z->c = z->l - m9; goto lab17; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 376 */ + { int ret = slice_del(z); /* delete, line 376 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 376 */ + if (ret == 0) { z->c = z->l - m9; goto lab17; } + if (ret < 0) return ret; + } + lab17: + ; + } + goto lab14; + lab16: + z->c = z->l - m8; + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 378 */ + if (ret == 0) goto lab11; + if (ret < 0) return ret; + } + } + lab14: + goto lab0; + lab11: + z->c = z->l - m1; + z->ket = z->c; /* [, line 382 */ + { int m10 = z->l - z->c; (void)m10; /* or, line 382 */ + { int ret = r_mark_ndAn(z); /* call mark_ndAn, line 382 */ + if (ret == 0) goto lab20; + if (ret < 0) return ret; + } + goto lab19; + lab20: + z->c = z->l - m10; + { int ret = r_mark_nU(z); /* call mark_nU, line 382 */ + if (ret == 0) goto lab18; + if (ret < 0) return ret; + } + } + lab19: + { int m11 = z->l - z->c; (void)m11; /* or, line 382 */ + { int ret = r_mark_sU(z); /* call mark_sU, line 382 */ + if (ret == 0) goto lab22; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 382 */ + { int ret = slice_del(z); /* delete, line 382 */ + if (ret < 0) return ret; + } + { int m12 = z->l - z->c; (void)m12; /* try, line 382 */ + z->ket = z->c; /* [, line 382 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 382 */ + if (ret == 0) { z->c = z->l - m12; goto lab23; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 382 */ + { int ret = slice_del(z); /* delete, line 382 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 382 */ + if (ret == 0) { z->c = z->l - m12; goto lab23; } + if (ret < 0) return ret; + } + lab23: + ; + } + goto lab21; + lab22: + z->c = z->l - m11; + { int ret = r_mark_lArI(z); /* call mark_lArI, line 382 */ + if (ret == 0) goto lab18; + if (ret < 0) return ret; + } + } + lab21: + goto lab0; + lab18: + z->c = z->l - m1; + z->ket = z->c; /* [, line 384 */ + { int ret = r_mark_DAn(z); /* call mark_DAn, line 384 */ + if (ret == 0) goto lab24; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 384 */ + { int ret = slice_del(z); /* delete, line 384 */ + if (ret < 0) return ret; + } + { int m13 = z->l - z->c; (void)m13; /* try, line 384 */ + z->ket = z->c; /* [, line 384 */ + { int m14 = z->l - z->c; (void)m14; /* or, line 387 */ + { int ret = r_mark_possessives(z); /* call mark_possessives, line 386 */ + if (ret == 0) goto lab27; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 386 */ + { int ret = slice_del(z); /* delete, line 386 */ + if (ret < 0) return ret; + } + { int m15 = z->l - z->c; (void)m15; /* try, line 386 */ + z->ket = z->c; /* [, line 386 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 386 */ + if (ret == 0) { z->c = z->l - m15; goto lab28; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 386 */ + { int ret = slice_del(z); /* delete, line 386 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 386 */ + if (ret == 0) { z->c = z->l - m15; goto lab28; } + if (ret < 0) return ret; + } + lab28: + ; + } + goto lab26; + lab27: + z->c = z->l - m14; + { int ret = r_mark_lAr(z); /* call mark_lAr, line 388 */ + if (ret == 0) goto lab29; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 388 */ + { int ret = slice_del(z); /* delete, line 388 */ + if (ret < 0) return ret; + } + { int m16 = z->l - z->c; (void)m16; /* try, line 388 */ + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 388 */ + if (ret == 0) { z->c = z->l - m16; goto lab30; } + if (ret < 0) return ret; + } + lab30: + ; + } + goto lab26; + lab29: + z->c = z->l - m14; + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 390 */ + if (ret == 0) { z->c = z->l - m13; goto lab25; } + if (ret < 0) return ret; + } + } + lab26: + lab25: + ; + } + goto lab0; + lab24: + z->c = z->l - m1; + z->ket = z->c; /* [, line 394 */ + { int m17 = z->l - z->c; (void)m17; /* or, line 394 */ + { int ret = r_mark_nUn(z); /* call mark_nUn, line 394 */ + if (ret == 0) goto lab33; + if (ret < 0) return ret; + } + goto lab32; + lab33: + z->c = z->l - m17; + { int ret = r_mark_ylA(z); /* call mark_ylA, line 394 */ + if (ret == 0) goto lab31; + if (ret < 0) return ret; + } + } + lab32: + z->bra = z->c; /* ], line 394 */ + { int ret = slice_del(z); /* delete, line 394 */ + if (ret < 0) return ret; + } + { int m18 = z->l - z->c; (void)m18; /* try, line 395 */ + { int m19 = z->l - z->c; (void)m19; /* or, line 397 */ + z->ket = z->c; /* [, line 396 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 396 */ + if (ret == 0) goto lab36; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 396 */ + { int ret = slice_del(z); /* delete, line 396 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 396 */ + if (ret == 0) goto lab36; + if (ret < 0) return ret; + } + goto lab35; + lab36: + z->c = z->l - m19; + z->ket = z->c; /* [, line 398 */ + { int m20 = z->l - z->c; (void)m20; /* or, line 398 */ + { int ret = r_mark_possessives(z); /* call mark_possessives, line 398 */ + if (ret == 0) goto lab39; + if (ret < 0) return ret; + } + goto lab38; + lab39: + z->c = z->l - m20; + { int ret = r_mark_sU(z); /* call mark_sU, line 398 */ + if (ret == 0) goto lab37; + if (ret < 0) return ret; + } + } + lab38: + z->bra = z->c; /* ], line 398 */ + { int ret = slice_del(z); /* delete, line 398 */ + if (ret < 0) return ret; + } + { int m21 = z->l - z->c; (void)m21; /* try, line 398 */ + z->ket = z->c; /* [, line 398 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 398 */ + if (ret == 0) { z->c = z->l - m21; goto lab40; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 398 */ + { int ret = slice_del(z); /* delete, line 398 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 398 */ + if (ret == 0) { z->c = z->l - m21; goto lab40; } + if (ret < 0) return ret; + } + lab40: + ; + } + goto lab35; + lab37: + z->c = z->l - m19; + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 400 */ + if (ret == 0) { z->c = z->l - m18; goto lab34; } + if (ret < 0) return ret; + } + } + lab35: + lab34: + ; + } + goto lab0; + lab31: + z->c = z->l - m1; + z->ket = z->c; /* [, line 404 */ + { int ret = r_mark_lArI(z); /* call mark_lArI, line 404 */ + if (ret == 0) goto lab41; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 404 */ + { int ret = slice_del(z); /* delete, line 404 */ + if (ret < 0) return ret; + } + goto lab0; + lab41: + z->c = z->l - m1; + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 406 */ + if (ret == 0) goto lab42; + if (ret < 0) return ret; + } + goto lab0; + lab42: + z->c = z->l - m1; + z->ket = z->c; /* [, line 408 */ + { int m22 = z->l - z->c; (void)m22; /* or, line 408 */ + { int ret = r_mark_DA(z); /* call mark_DA, line 408 */ + if (ret == 0) goto lab45; + if (ret < 0) return ret; + } + goto lab44; + lab45: + z->c = z->l - m22; + { int ret = r_mark_yU(z); /* call mark_yU, line 408 */ + if (ret == 0) goto lab46; + if (ret < 0) return ret; + } + goto lab44; + lab46: + z->c = z->l - m22; + { int ret = r_mark_yA(z); /* call mark_yA, line 408 */ + if (ret == 0) goto lab43; + if (ret < 0) return ret; + } + } + lab44: + z->bra = z->c; /* ], line 408 */ + { int ret = slice_del(z); /* delete, line 408 */ + if (ret < 0) return ret; + } + { int m23 = z->l - z->c; (void)m23; /* try, line 408 */ + z->ket = z->c; /* [, line 408 */ + { int m24 = z->l - z->c; (void)m24; /* or, line 408 */ + { int ret = r_mark_possessives(z); /* call mark_possessives, line 408 */ + if (ret == 0) goto lab49; + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 408 */ + { int ret = slice_del(z); /* delete, line 408 */ + if (ret < 0) return ret; + } + { int m25 = z->l - z->c; (void)m25; /* try, line 408 */ + z->ket = z->c; /* [, line 408 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 408 */ + if (ret == 0) { z->c = z->l - m25; goto lab50; } + if (ret < 0) return ret; + } + lab50: + ; + } + goto lab48; + lab49: + z->c = z->l - m24; + { int ret = r_mark_lAr(z); /* call mark_lAr, line 408 */ + if (ret == 0) { z->c = z->l - m23; goto lab47; } + if (ret < 0) return ret; + } + } + lab48: + z->bra = z->c; /* ], line 408 */ + { int ret = slice_del(z); /* delete, line 408 */ + if (ret < 0) return ret; + } + z->ket = z->c; /* [, line 408 */ + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 408 */ + if (ret == 0) { z->c = z->l - m23; goto lab47; } + if (ret < 0) return ret; + } + lab47: + ; + } + goto lab0; + lab43: + z->c = z->l - m1; + z->ket = z->c; /* [, line 410 */ + { int m26 = z->l - z->c; (void)m26; /* or, line 410 */ + { int ret = r_mark_possessives(z); /* call mark_possessives, line 410 */ + if (ret == 0) goto lab52; + if (ret < 0) return ret; + } + goto lab51; + lab52: + z->c = z->l - m26; + { int ret = r_mark_sU(z); /* call mark_sU, line 410 */ + if (ret <= 0) return ret; + } + } + lab51: + z->bra = z->c; /* ], line 410 */ + { int ret = slice_del(z); /* delete, line 410 */ + if (ret < 0) return ret; + } + { int m27 = z->l - z->c; (void)m27; /* try, line 410 */ + z->ket = z->c; /* [, line 410 */ + { int ret = r_mark_lAr(z); /* call mark_lAr, line 410 */ + if (ret == 0) { z->c = z->l - m27; goto lab53; } + if (ret < 0) return ret; + } + z->bra = z->c; /* ], line 410 */ + { int ret = slice_del(z); /* delete, line 410 */ + if (ret < 0) return ret; + } + { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 410 */ + if (ret == 0) { z->c = z->l - m27; goto lab53; } + if (ret < 0) return ret; + } + lab53: + ; + } + } +lab0: + return 1; +} + +static int r_post_process_last_consonants(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 414 */ + among_var = find_among_b(z, a_23, 4); /* substring, line 414 */ + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 414 */ + switch (among_var) { /* among, line 414 */ + case 1: + { int ret = slice_from_s(z, 1, s_5); /* <-, line 415 */ + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 2, s_6); /* <-, line 416 */ + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_7); /* <-, line 417 */ + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 1, s_8); /* <-, line 418 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) { /* backwardmode */ + { int m_test1 = z->l - z->c; /* test, line 429 */ + { int m2 = z->l - z->c; (void)m2; /* or, line 429 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab1; /* literal, line 429 */ + z->c--; + goto lab0; + lab1: + z->c = z->l - m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0; /* literal, line 429 */ + z->c--; + } + lab0: + z->c = z->l - m_test1; + } + { int m3 = z->l - z->c; (void)m3; /* or, line 431 */ + { int m_test4 = z->l - z->c; /* test, line 430 */ + if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab3; /* goto */ /* grouping vowel, line 430 */ + { int m5 = z->l - z->c; (void)m5; /* or, line 430 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab5; /* literal, line 430 */ + z->c--; + goto lab4; + lab5: + z->c = z->l - m5; + if (!(eq_s_b(z, 2, s_9))) goto lab3; /* literal, line 430 */ + } + lab4: + z->c = z->l - m_test4; + } + { int ret; + { int saved_c = z->c; + ret = insert_s(z, z->c, z->c, 2, s_10); /* <+, line 430 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab2; + lab3: + z->c = z->l - m3; + { int m_test6 = z->l - z->c; /* test, line 432 */ + if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab6; /* goto */ /* grouping vowel, line 432 */ + { int m7 = z->l - z->c; (void)m7; /* or, line 432 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8; /* literal, line 432 */ + z->c--; + goto lab7; + lab8: + z->c = z->l - m7; + if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab6; /* literal, line 432 */ + z->c--; + } + lab7: + z->c = z->l - m_test6; + } + { int ret; + { int saved_c = z->c; + ret = insert_s(z, z->c, z->c, 1, s_11); /* <+, line 432 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab2; + lab6: + z->c = z->l - m3; + { int m_test8 = z->l - z->c; /* test, line 434 */ + if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab9; /* goto */ /* grouping vowel, line 434 */ + { int m9 = z->l - z->c; (void)m9; /* or, line 434 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab11; /* literal, line 434 */ + z->c--; + goto lab10; + lab11: + z->c = z->l - m9; + if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab9; /* literal, line 434 */ + z->c--; + } + lab10: + z->c = z->l - m_test8; + } + { int ret; + { int saved_c = z->c; + ret = insert_s(z, z->c, z->c, 1, s_12); /* <+, line 434 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + goto lab2; + lab9: + z->c = z->l - m3; + { int m_test10 = z->l - z->c; /* test, line 436 */ + if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 436 */ + { int m11 = z->l - z->c; (void)m11; /* or, line 436 */ + if (!(eq_s_b(z, 2, s_13))) goto lab13; /* literal, line 436 */ + goto lab12; + lab13: + z->c = z->l - m11; + if (!(eq_s_b(z, 2, s_14))) return 0; /* literal, line 436 */ + } + lab12: + z->c = z->l - m_test10; + } + { int ret; + { int saved_c = z->c; + ret = insert_s(z, z->c, z->c, 2, s_15); /* <+, line 436 */ + z->c = saved_c; + } + if (ret < 0) return ret; + } + } +lab2: + return 1; +} + +static int r_is_reserved_word(struct SN_env * z) { /* backwardmode */ + if (!(eq_s_b(z, 2, s_16))) return 0; /* literal, line 440 */ + { int m1 = z->l - z->c; (void)m1; /* try, line 440 */ + if (!(eq_s_b(z, 3, s_17))) { z->c = z->l - m1; goto lab0; } /* literal, line 440 */ + lab0: + ; + } + if (z->c > z->lb) return 0; /* atlimit, line 440 */ + return 1; +} + +static int r_more_than_one_syllable_word(struct SN_env * z) { /* forwardmode */ + { int c_test1 = z->c; /* test, line 447 */ + { int i = 2; + while(1) { /* atleast, line 447 */ + int c2 = z->c; + { /* gopast */ /* grouping vowel, line 447 */ + int ret = out_grouping_U(z, g_vowel, 97, 305, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + i--; + continue; + lab0: + z->c = c2; + break; + } + if (i > 0) return 0; + } + z->c = c_test1; + } + return 1; +} + +static int r_postlude(struct SN_env * z) { /* forwardmode */ + z->lb = z->c; z->c = z->l; /* backwards, line 451 */ + + { int m1 = z->l - z->c; (void)m1; /* not, line 452 */ + { int ret = r_is_reserved_word(z); /* call is_reserved_word, line 452 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + return 0; + lab0: + z->c = z->l - m1; + } + { int m2 = z->l - z->c; (void)m2; /* do, line 453 */ + { int ret = r_append_U_to_stems_ending_with_d_or_g(z); /* call append_U_to_stems_ending_with_d_or_g, line 453 */ + 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 454 */ + { int ret = r_post_process_last_consonants(z); /* call post_process_last_consonants, line 454 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + lab2: + z->c = z->l - m3; + } + z->c = z->lb; + return 1; +} + +extern int turkish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + { int ret = r_more_than_one_syllable_word(z); /* call more_than_one_syllable_word, line 460 */ + if (ret <= 0) return ret; + } + z->lb = z->c; z->c = z->l; /* backwards, line 462 */ + + { int m1 = z->l - z->c; (void)m1; /* do, line 463 */ + { int ret = r_stem_nominal_verb_suffixes(z); /* call stem_nominal_verb_suffixes, line 463 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = z->l - m1; + } + if (!(z->B[0])) return 0; /* Boolean test continue_stemming_noun_suffixes, line 464 */ + { int m2 = z->l - z->c; (void)m2; /* do, line 465 */ + { int ret = r_stem_noun_suffixes(z); /* call stem_noun_suffixes, line 465 */ + if (ret == 0) goto lab1; + if (ret < 0) return ret; + } + lab1: + z->c = z->l - m2; + } + z->c = z->lb; + { int ret = r_postlude(z); /* call postlude, line 468 */ + if (ret <= 0) return ret; + } + return 1; +} + +extern struct SN_env * turkish_UTF_8_create_env(void) { return SN_create_env(0, 0, 1); } + +extern void turkish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/utilities.c b/src/backend/snowball/libstemmer/utilities.c new file mode 100644 index 0000000..d64d922 --- /dev/null +++ b/src/backend/snowball/libstemmer/utilities.c @@ -0,0 +1,498 @@ +#include "header.h" + +#define CREATE_SIZE 1 + +extern symbol * create_s(void) { + symbol * p; + void * mem = malloc(HEAD + (CREATE_SIZE + 1) * sizeof(symbol)); + if (mem == NULL) return NULL; + p = (symbol *) (HEAD + (char *) mem); + CAPACITY(p) = CREATE_SIZE; + SET_SIZE(p, 0); + return p; +} + +extern void lose_s(symbol * p) { + if (p == NULL) return; + free((char *) p - HEAD); +} + +/* + new_p = skip_utf8(p, c, lb, l, n); skips n characters forwards from p + c + if n +ve, or n characters backwards from p + c - 1 if n -ve. new_p is the new + position, or -1 on failure. + + -- used to implement hop and next in the utf8 case. +*/ + +extern int skip_utf8(const symbol * p, int c, int lb, int l, int n) { + int b; + if (n >= 0) { + for (; n > 0; n--) { + if (c >= l) return -1; + b = p[c++]; + if (b >= 0xC0) { /* 1100 0000 */ + while (c < l) { + b = p[c]; + if (b >= 0xC0 || b < 0x80) break; + /* break unless b is 10------ */ + c++; + } + } + } + } else { + for (; n < 0; n++) { + if (c <= lb) return -1; + b = p[--c]; + if (b >= 0x80) { /* 1000 0000 */ + while (c > lb) { + b = p[c]; + if (b >= 0xC0) break; /* 1100 0000 */ + c--; + } + } + } + } + return c; +} + +/* Code for character groupings: utf8 cases */ + +static int get_utf8(const symbol * p, int c, int l, int * slot) { + int b0, b1, b2; + if (c >= l) return 0; + b0 = p[c++]; + if (b0 < 0xC0 || c == l) { /* 1100 0000 */ + *slot = b0; + return 1; + } + b1 = p[c++] & 0x3F; + if (b0 < 0xE0 || c == l) { /* 1110 0000 */ + *slot = (b0 & 0x1F) << 6 | b1; + return 2; + } + b2 = p[c++] & 0x3F; + if (b0 < 0xF0 || c == l) { /* 1111 0000 */ + *slot = (b0 & 0xF) << 12 | b1 << 6 | b2; + return 3; + } + *slot = (b0 & 0xE) << 18 | b1 << 12 | b2 << 6 | (p[c] & 0x3F); + return 4; +} + +static int get_b_utf8(const symbol * p, int c, int lb, int * slot) { + int a, b; + if (c <= lb) return 0; + b = p[--c]; + if (b < 0x80 || c == lb) { /* 1000 0000 */ + *slot = b; + return 1; + } + a = b & 0x3F; + b = p[--c]; + if (b >= 0xC0 || c == lb) { /* 1100 0000 */ + *slot = (b & 0x1F) << 6 | a; + return 2; + } + a |= (b & 0x3F) << 6; + b = p[--c]; + if (b >= 0xE0 || c == lb) { /* 1110 0000 */ + *slot = (b & 0xF) << 12 | a; + return 3; + } + *slot = (p[--c] & 0xE) << 18 | (b & 0x3F) << 12 | a; + return 4; +} + +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); + if (!w) return -1; + if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) + return w; + z->c += w; + } while (repeat); + return 0; +} + +extern int in_grouping_b_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) { + do { + int ch; + int w = get_b_utf8(z->p, z->c, z->lb, & ch); + if (!w) return -1; + if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) + return w; + z->c -= w; + } while (repeat); + return 0; +} + +extern int out_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); + if (!w) return -1; + if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)) + return w; + z->c += w; + } while (repeat); + return 0; +} + +extern int out_grouping_b_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) { + do { + int ch; + int w = get_b_utf8(z->p, z->c, z->lb, & ch); + if (!w) return -1; + if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)) + return w; + z->c -= w; + } while (repeat); + return 0; +} + +/* Code for character groupings: non-utf8 cases */ + +extern int in_grouping(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) { + do { + int ch; + if (z->c >= z->l) return -1; + ch = z->p[z->c]; + if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) + return 1; + z->c++; + } while (repeat); + return 0; +} + +extern int in_grouping_b(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) { + do { + int ch; + if (z->c <= z->lb) return -1; + ch = z->p[z->c - 1]; + if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) + return 1; + z->c--; + } while (repeat); + return 0; +} + +extern int out_grouping(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) { + do { + int ch; + if (z->c >= z->l) return -1; + ch = z->p[z->c]; + if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)) + return 1; + z->c++; + } while (repeat); + return 0; +} + +extern int out_grouping_b(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) { + do { + int ch; + if (z->c <= z->lb) return -1; + ch = z->p[z->c - 1]; + if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)) + return 1; + z->c--; + } while (repeat); + return 0; +} + +extern int eq_s(struct SN_env * z, int s_size, const symbol * s) { + if (z->l - z->c < s_size || memcmp(z->p + z->c, s, s_size * sizeof(symbol)) != 0) return 0; + z->c += s_size; return 1; +} + +extern int eq_s_b(struct SN_env * z, int s_size, const symbol * s) { + if (z->c - z->lb < s_size || memcmp(z->p + z->c - s_size, s, s_size * sizeof(symbol)) != 0) return 0; + z->c -= s_size; return 1; +} + +extern int eq_v(struct SN_env * z, const symbol * p) { + return eq_s(z, SIZE(p), p); +} + +extern int eq_v_b(struct SN_env * z, const symbol * p) { + return eq_s_b(z, SIZE(p), p); +} + +extern int find_among(struct SN_env * z, const struct among * v, int v_size) { + + int i = 0; + int j = v_size; + + int c = z->c; int l = z->l; + symbol * q = z->p + c; + + const struct among * w; + + int common_i = 0; + int common_j = 0; + + int first_key_inspected = 0; + + while(1) { + int k = i + ((j - i) >> 1); + int diff = 0; + int common = common_i < common_j ? common_i : common_j; /* smaller */ + w = v + k; + { + int i2; for (i2 = common; i2 < w->s_size; i2++) { + if (c + common == l) { diff = -1; break; } + diff = q[common] - w->s[i2]; + if (diff != 0) break; + common++; + } + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0) break; /* v->s has been inspected */ + if (j == i) break; /* only one item in v */ + + /* - but now we need to go round once more to get + v->s inspected. This looks messy, but is actually + the optimal approach. */ + + if (first_key_inspected) break; + first_key_inspected = 1; + } + } + while(1) { + w = v + i; + if (common_i >= w->s_size) { + z->c = c + w->s_size; + if (w->function == 0) return w->result; + { + int res = w->function(z); + z->c = c + w->s_size; + if (res) return w->result; + } + } + i = w->substring_i; + if (i < 0) return 0; + } +} + +/* find_among_b is for backwards processing. Same comments apply */ + +extern int find_among_b(struct SN_env * z, const struct among * v, int v_size) { + + int i = 0; + int j = v_size; + + int c = z->c; int lb = z->lb; + symbol * q = z->p + c - 1; + + const struct among * w; + + int common_i = 0; + int common_j = 0; + + int first_key_inspected = 0; + + while(1) { + int k = i + ((j - i) >> 1); + int diff = 0; + int common = common_i < common_j ? common_i : common_j; + w = v + k; + { + int i2; for (i2 = w->s_size - 1 - common; i2 >= 0; i2--) { + if (c - common == lb) { diff = -1; break; } + diff = q[- common] - w->s[i2]; + if (diff != 0) break; + common++; + } + } + if (diff < 0) { j = k; common_j = common; } + else { i = k; common_i = common; } + if (j - i <= 1) { + if (i > 0) break; + if (j == i) break; + if (first_key_inspected) break; + first_key_inspected = 1; + } + } + while(1) { + w = v + i; + if (common_i >= w->s_size) { + z->c = c - w->s_size; + if (w->function == 0) return w->result; + { + int res = w->function(z); + z->c = c - w->s_size; + if (res) return w->result; + } + } + i = w->substring_i; + if (i < 0) return 0; + } +} + + +/* Increase the size of the buffer pointed to by p to at least n symbols. + * If insufficient memory, returns NULL and frees the old buffer. + */ +static symbol * increase_size(symbol * p, int n) { + symbol * q; + int new_size = n + 20; + void * mem = realloc((char *) p - HEAD, + HEAD + (new_size + 1) * sizeof(symbol)); + if (mem == NULL) { + lose_s(p); + return NULL; + } + q = (symbol *) (HEAD + (char *)mem); + CAPACITY(q) = new_size; + return q; +} + +/* to replace symbols between c_bra and c_ket in z->p by the + s_size symbols at s. + Returns 0 on success, -1 on error. + Also, frees z->p (and sets it to NULL) on error. +*/ +extern int replace_s(struct SN_env * z, int c_bra, int c_ket, int s_size, const symbol * s, int * adjptr) +{ + int adjustment; + int len; + if (z->p == NULL) { + z->p = create_s(); + if (z->p == NULL) return -1; + } + adjustment = s_size - (c_ket - c_bra); + len = SIZE(z->p); + if (adjustment != 0) { + if (adjustment + len > CAPACITY(z->p)) { + z->p = increase_size(z->p, adjustment + len); + if (z->p == NULL) return -1; + } + memmove(z->p + c_ket + adjustment, + z->p + c_ket, + (len - c_ket) * sizeof(symbol)); + SET_SIZE(z->p, adjustment + len); + z->l += adjustment; + if (z->c >= c_ket) + z->c += adjustment; + else if (z->c > c_bra) + z->c = c_bra; + } + if (s_size) memmove(z->p + c_bra, s, s_size * sizeof(symbol)); + if (adjptr != NULL) + *adjptr = adjustment; + return 0; +} + +static int slice_check(struct SN_env * z) { + + if (z->bra < 0 || + z->bra > z->ket || + z->ket > z->l || + z->p == NULL || + z->l > SIZE(z->p)) /* this line could be removed */ + { +#if 0 + fprintf(stderr, "faulty slice operation:\n"); + debug(z, -1, 0); +#endif + return -1; + } + return 0; +} + +extern int slice_from_s(struct SN_env * z, int s_size, const symbol * s) { + if (slice_check(z)) return -1; + return replace_s(z, z->bra, z->ket, s_size, s, NULL); +} + +extern int slice_from_v(struct SN_env * z, const symbol * p) { + return slice_from_s(z, SIZE(p), p); +} + +extern int slice_del(struct SN_env * z) { + return slice_from_s(z, 0, 0); +} + +extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, const symbol * s) { + int adjustment; + if (replace_s(z, bra, ket, s_size, s, &adjustment)) + return -1; + if (bra <= z->bra) z->bra += adjustment; + if (bra <= z->ket) z->ket += adjustment; + return 0; +} + +extern int insert_v(struct SN_env * z, int bra, int ket, const symbol * p) { + return insert_s(z, bra, ket, SIZE(p), p); +} + +extern symbol * slice_to(struct SN_env * z, symbol * p) { + if (slice_check(z)) { + lose_s(p); + return NULL; + } + { + int len = z->ket - z->bra; + if (CAPACITY(p) < len) { + p = increase_size(p, len); + if (p == NULL) + return NULL; + } + memmove(p, z->p + z->bra, len * sizeof(symbol)); + SET_SIZE(p, len); + } + return p; +} + +extern symbol * assign_to(struct SN_env * z, symbol * p) { + int len = z->l; + if (CAPACITY(p) < len) { + p = increase_size(p, len); + if (p == NULL) + return NULL; + } + memmove(p, z->p, len * sizeof(symbol)); + SET_SIZE(p, len); + 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; + int limit = SIZE(z->p); + /*if (number >= 0) printf("%3d (line %4d): '", number, line_count);*/ + if (number >= 0) printf("%3d (line %4d): [%d]'", number, line_count,limit); + for (i = 0; i <= limit; i++) { + if (z->lb == i) printf("{"); + if (z->bra == i) printf("["); + if (z->c == i) printf("|"); + if (z->ket == i) printf("]"); + if (z->l == i) printf("}"); + if (i < limit) + { int ch = z->p[i]; + if (ch == 0) ch = '#'; + printf("%c", ch); + } + } + printf("'\n"); +} +#endif diff --git a/src/backend/snowball/snowball.sql.in b/src/backend/snowball/snowball.sql.in new file mode 100644 index 0000000..0d47fac --- /dev/null +++ b/src/backend/snowball/snowball.sql.in @@ -0,0 +1,42 @@ +/* + * text search configuration for _LANGNAME_ language + * + * Copyright (c) 2007-2020, PostgreSQL Global Development Group + * + * src/backend/snowball/snowball.sql.in + * + * _LANGNAME_ and certain other macros are replaced for each language; + * see the Makefile for details. + * + * Note: this file is read in single-user -j mode, which means that the + * command terminator is semicolon-newline-newline; whenever the backend + * sees that, it stops and executes what it's got. If you write a lot of + * statements without empty lines between, they'll all get quoted to you + * in any error message about one of them, so don't do that. Also, you + * cannot write a semicolon immediately followed by an empty line in a + * string literal (including a function body!) or a multiline comment. + */ + +CREATE TEXT SEARCH DICTIONARY _DICTNAME_ + (TEMPLATE = snowball, Language = _LANGNAME_ _STOPWORDS_); + +COMMENT ON TEXT SEARCH DICTIONARY _DICTNAME_ IS 'snowball stemmer for _LANGNAME_ language'; + +CREATE TEXT SEARCH CONFIGURATION _CFGNAME_ + (PARSER = default); + +COMMENT ON TEXT SEARCH CONFIGURATION _CFGNAME_ IS 'configuration for _LANGNAME_ language'; + +ALTER TEXT SEARCH CONFIGURATION _CFGNAME_ ADD MAPPING + FOR email, url, url_path, host, file, version, + sfloat, float, int, uint, + numword, hword_numpart, numhword + WITH simple; + +ALTER TEXT SEARCH CONFIGURATION _CFGNAME_ ADD MAPPING + FOR asciiword, hword_asciipart, asciihword + WITH _ASCDICTNAME_; + +ALTER TEXT SEARCH CONFIGURATION _CFGNAME_ ADD MAPPING + FOR word, hword_part, hword + WITH _NONASCDICTNAME_; diff --git a/src/backend/snowball/snowball_func.sql.in b/src/backend/snowball/snowball_func.sql.in new file mode 100644 index 0000000..8e2063b --- /dev/null +++ b/src/backend/snowball/snowball_func.sql.in @@ -0,0 +1,34 @@ +/* + * Create underlying C functions for Snowball stemmers + * + * Copyright (c) 2007-2020, PostgreSQL Global Development Group + * + * src/backend/snowball/snowball_func.sql.in + * + * This file is combined with multiple instances of snowball.sql.in to + * build snowball_create.sql, which is executed during initdb. + * + * Note: this file is read in single-user -j mode, which means that the + * command terminator is semicolon-newline-newline; whenever the backend + * sees that, it stops and executes what it's got. If you write a lot of + * statements without empty lines between, they'll all get quoted to you + * in any error message about one of them, so don't do that. Also, you + * cannot write a semicolon immediately followed by an empty line in a + * string literal (including a function body!) or a multiline comment. + */ + +SET search_path = pg_catalog; + +CREATE FUNCTION dsnowball_init(INTERNAL) + RETURNS INTERNAL AS '$libdir/dict_snowball', 'dsnowball_init' +LANGUAGE C STRICT; + +CREATE FUNCTION dsnowball_lexize(INTERNAL, INTERNAL, INTERNAL, INTERNAL) + RETURNS INTERNAL AS '$libdir/dict_snowball', 'dsnowball_lexize' +LANGUAGE C STRICT; + +CREATE TEXT SEARCH TEMPLATE snowball + (INIT = dsnowball_init, + LEXIZE = dsnowball_lexize); + +COMMENT ON TEXT SEARCH TEMPLATE snowball IS 'snowball stemmer'; diff --git a/src/backend/snowball/stopwords/danish.stop b/src/backend/snowball/stopwords/danish.stop new file mode 100644 index 0000000..d3edc67 --- /dev/null +++ b/src/backend/snowball/stopwords/danish.stop @@ -0,0 +1,94 @@ +og +i +jeg +det +at +en +den +til +er +som +på +de +med +han +af +for +ikke +der +var +mig +sig +men +et +har +om +vi +min +havde +ham +hun +nu +over +da +fra +du +ud +sin +dem +os +op +man +hans +hvor +eller +hvad +skal +selv +her +alle +vil +blev +kunne +ind +når +være +dog +noget +ville +jo +deres +efter +ned +skulle +denne +end +dette +mit +også +under +have +dig +anden +hende +mine +alt +meget +sit +sine +vor +mod +disse +hvis +din +nogle +hos +blive +mange +ad +bliver +hendes +været +thi +jer +sådan diff --git a/src/backend/snowball/stopwords/dutch.stop b/src/backend/snowball/stopwords/dutch.stop new file mode 100644 index 0000000..cafa032 --- /dev/null +++ b/src/backend/snowball/stopwords/dutch.stop @@ -0,0 +1,101 @@ +de +en +van +ik +te +dat +die +in +een +hij +het +niet +zijn +is +was +op +aan +met +als +voor +had +er +maar +om +hem +dan +zou +of +wat +mijn +men +dit +zo +door +over +ze +zich +bij +ook +tot +je +mij +uit +der +daar +haar +naar +heb +hoe +heeft +hebben +deze +u +want +nog +zal +me +zij +nu +ge +geen +omdat +iets +worden +toch +al +waren +veel +meer +doen +toen +moet +ben +zonder +kan +hun +dus +alles +onder +ja +eens +hier +wie +werd +altijd +doch +wordt +wezen +kunnen +ons +zelf +tegen +na +reeds +wil +kon +niets +uw +iemand +geweest +andere diff --git a/src/backend/snowball/stopwords/english.stop b/src/backend/snowball/stopwords/english.stop new file mode 100644 index 0000000..5b16b50 --- /dev/null +++ b/src/backend/snowball/stopwords/english.stop @@ -0,0 +1,127 @@ +i +me +my +myself +we +our +ours +ourselves +you +your +yours +yourself +yourselves +he +him +his +himself +she +her +hers +herself +it +its +itself +they +them +their +theirs +themselves +what +which +who +whom +this +that +these +those +am +is +are +was +were +be +been +being +have +has +had +having +do +does +did +doing +a +an +the +and +but +if +or +because +as +until +while +of +at +by +for +with +about +against +between +into +through +during +before +after +above +below +to +from +up +down +in +out +on +off +over +under +again +further +then +once +here +there +when +where +why +how +all +any +both +each +few +more +most +other +some +such +no +nor +not +only +own +same +so +than +too +very +s +t +can +will +just +don +should +now diff --git a/src/backend/snowball/stopwords/finnish.stop b/src/backend/snowball/stopwords/finnish.stop new file mode 100644 index 0000000..47ee200 --- /dev/null +++ b/src/backend/snowball/stopwords/finnish.stop @@ -0,0 +1,235 @@ +olla +olen +olet +on +olemme +olette +ovat +ole +oli +olisi +olisit +olisin +olisimme +olisitte +olisivat +olit +olin +olimme +olitte +olivat +ollut +olleet +en +et +ei +emme +ette +eivät +minä +minun +minut +minua +minussa +minusta +minuun +minulla +minulta +minulle +sinä +sinun +sinut +sinua +sinussa +sinusta +sinuun +sinulla +sinulta +sinulle +hän +hänen +hänet +häntä +hänessä +hänestä +häneen +hänellä +häneltä +hänelle +me +meidän +meidät +meitä +meissä +meistä +meihin +meillä +meiltä +meille +te +teidän +teidät +teitä +teissä +teistä +teihin +teillä +teiltä +teille +he +heidän +heidät +heitä +heissä +heistä +heihin +heillä +heiltä +heille +tämä +tämän +tätä +tässä +tästä +tähän +tallä +tältä +tälle +tänä +täksi +tuo +tuon +tuotä +tuossa +tuosta +tuohon +tuolla +tuolta +tuolle +tuona +tuoksi +se +sen +sitä +siinä +siitä +siihen +sillä +siltä +sille +sinä +siksi +nämä +näiden +näitä +näissä +näistä +näihin +näillä +näiltä +näille +näinä +näiksi +nuo +noiden +noita +noissa +noista +noihin +noilla +noilta +noille +noina +noiksi +ne +niiden +niitä +niissä +niistä +niihin +niillä +niiltä +niille +niinä +niiksi +kuka +kenen +kenet +ketä +kenessä +kenestä +keneen +kenellä +keneltä +kenelle +kenenä +keneksi +ketkä +keiden +ketkä +keitä +keissä +keistä +keihin +keillä +keiltä +keille +keinä +keiksi +mikä +minkä +minkä +mitä +missä +mistä +mihin +millä +miltä +mille +minä +miksi +mitkä +joka +jonka +jota +jossa +josta +johon +jolla +jolta +jolle +jona +joksi +jotka +joiden +joita +joissa +joista +joihin +joilla +joilta +joille +joina +joiksi +että +ja +jos +koska +kuin +mutta +niin +sekä +sillä +tai +vaan +vai +vaikka +kanssa +mukaan +noin +poikki +yli +kun +niin +nyt +itse diff --git a/src/backend/snowball/stopwords/french.stop b/src/backend/snowball/stopwords/french.stop new file mode 100644 index 0000000..e7cbf4c --- /dev/null +++ b/src/backend/snowball/stopwords/french.stop @@ -0,0 +1,155 @@ +au +aux +avec +ce +ces +dans +de +des +du +elle +en +et +eux +il +je +la +le +leur +lui +ma +mais +me +même +mes +moi +mon +ne +nos +notre +nous +on +ou +par +pas +pour +qu +que +qui +sa +se +ses +son +sur +ta +te +tes +toi +ton +tu +un +une +vos +votre +vous +c +d +j +l +à +m +n +s +t +y +été +étée +étées +étés +étant +étante +étants +étantes +suis +es +est +sommes +êtes +sont +serai +seras +sera +serons +serez +seront +serais +serait +serions +seriez +seraient +étais +était +étions +étiez +étaient +fus +fut +fûmes +fûtes +furent +sois +soit +soyons +soyez +soient +fusse +fusses +fût +fussions +fussiez +fussent +ayant +ayante +ayantes +ayants +eu +eue +eues +eus +ai +as +avons +avez +ont +aurai +auras +aura +aurons +aurez +auront +aurais +aurait +aurions +auriez +auraient +avais +avait +avions +aviez +avaient +eut +eûmes +eûtes +eurent +aie +aies +ait +ayons +ayez +aient +eusse +eusses +eût +eussions +eussiez +eussent diff --git a/src/backend/snowball/stopwords/german.stop b/src/backend/snowball/stopwords/german.stop new file mode 100644 index 0000000..edef220 --- /dev/null +++ b/src/backend/snowball/stopwords/german.stop @@ -0,0 +1,231 @@ +aber +alle +allem +allen +aller +alles +als +also +am +an +ander +andere +anderem +anderen +anderer +anderes +anderm +andern +anderr +anders +auch +auf +aus +bei +bin +bis +bist +da +damit +dann +der +den +des +dem +die +das +daß +derselbe +derselben +denselben +desselben +demselben +dieselbe +dieselben +dasselbe +dazu +dein +deine +deinem +deinen +deiner +deines +denn +derer +dessen +dich +dir +du +dies +diese +diesem +diesen +dieser +dieses +doch +dort +durch +ein +eine +einem +einen +einer +eines +einig +einige +einigem +einigen +einiger +einiges +einmal +er +ihn +ihm +es +etwas +euer +eure +eurem +euren +eurer +eures +für +gegen +gewesen +hab +habe +haben +hat +hatte +hatten +hier +hin +hinter +ich +mich +mir +ihr +ihre +ihrem +ihren +ihrer +ihres +euch +im +in +indem +ins +ist +jede +jedem +jeden +jeder +jedes +jene +jenem +jenen +jener +jenes +jetzt +kann +kein +keine +keinem +keinen +keiner +keines +können +könnte +machen +man +manche +manchem +manchen +mancher +manches +mein +meine +meinem +meinen +meiner +meines +mit +muss +musste +nach +nicht +nichts +noch +nun +nur +ob +oder +ohne +sehr +sein +seine +seinem +seinen +seiner +seines +selbst +sich +sie +ihnen +sind +so +solche +solchem +solchen +solcher +solches +soll +sollte +sondern +sonst +über +um +und +uns +unse +unsem +unsen +unser +unses +unter +viel +vom +von +vor +während +war +waren +warst +was +weg +weil +weiter +welche +welchem +welchen +welcher +welches +wenn +werde +werden +wie +wieder +will +wir +wird +wirst +wo +wollen +wollte +würde +würden +zu +zum +zur +zwar +zwischen diff --git a/src/backend/snowball/stopwords/hungarian.stop b/src/backend/snowball/stopwords/hungarian.stop new file mode 100644 index 0000000..abfd35c --- /dev/null +++ b/src/backend/snowball/stopwords/hungarian.stop @@ -0,0 +1,199 @@ +a +ahogy +ahol +aki +akik +akkor +alatt +által +általában +amely +amelyek +amelyekben +amelyeket +amelyet +amelynek +ami +amit +amolyan +amíg +amikor +át +abban +ahhoz +annak +arra +arról +az +azok +azon +azt +azzal +azért +aztán +azután +azonban +bár +be +belül +benne +cikk +cikkek +cikkeket +csak +de +e +eddig +egész +egy +egyes +egyetlen +egyéb +egyik +egyre +ekkor +el +elég +ellen +elő +először +előtt +első +én +éppen +ebben +ehhez +emilyen +ennek +erre +ez +ezt +ezek +ezen +ezzel +ezért +és +fel +felé +hanem +hiszen +hogy +hogyan +igen +így +illetve +ill. +ill +ilyen +ilyenkor +ison +ismét +itt +jó +jól +jobban +kell +kellett +keresztül +keressünk +ki +kívül +között +közül +legalább +lehet +lehetett +legyen +lenne +lenni +lesz +lett +maga +magát +majd +majd +már +más +másik +meg +még +mellett +mert +mely +melyek +mi +mit +míg +miért +milyen +mikor +minden +mindent +mindenki +mindig +mint +mintha +mivel +most +nagy +nagyobb +nagyon +ne +néha +nekem +neki +nem +néhány +nélkül +nincs +olyan +ott +össze +ő +ők +őket +pedig +persze +rá +s +saját +sem +semmi +sok +sokat +sokkal +számára +szemben +szerint +szinte +talán +tehát +teljes +tovább +továbbá +több +úgy +ugyanis +új +újabb +újra +után +utána +utolsó +vagy +vagyis +valaki +valami +valamint +való +vagyok +van +vannak +volt +voltam +voltak +voltunk +vissza +vele +viszont +volna diff --git a/src/backend/snowball/stopwords/italian.stop b/src/backend/snowball/stopwords/italian.stop new file mode 100644 index 0000000..6ee02b5 --- /dev/null +++ b/src/backend/snowball/stopwords/italian.stop @@ -0,0 +1,279 @@ +ad +al +allo +ai +agli +all +agl +alla +alle +con +col +coi +da +dal +dallo +dai +dagli +dall +dagl +dalla +dalle +di +del +dello +dei +degli +dell +degl +della +delle +in +nel +nello +nei +negli +nell +negl +nella +nelle +su +sul +sullo +sui +sugli +sull +sugl +sulla +sulle +per +tra +contro +io +tu +lui +lei +noi +voi +loro +mio +mia +miei +mie +tuo +tua +tuoi +tue +suo +sua +suoi +sue +nostro +nostra +nostri +nostre +vostro +vostra +vostri +vostre +mi +ti +ci +vi +lo +la +li +le +gli +ne +il +un +uno +una +ma +ed +se +perché +anche +come +dov +dove +che +chi +cui +non +più +quale +quanto +quanti +quanta +quante +quello +quelli +quella +quelle +questo +questi +questa +queste +si +tutto +tutti +a +c +e +i +l +o +ho +hai +ha +abbiamo +avete +hanno +abbia +abbiate +abbiano +avrò +avrai +avrà +avremo +avrete +avranno +avrei +avresti +avrebbe +avremmo +avreste +avrebbero +avevo +avevi +aveva +avevamo +avevate +avevano +ebbi +avesti +ebbe +avemmo +aveste +ebbero +avessi +avesse +avessimo +avessero +avendo +avuto +avuta +avuti +avute +sono +sei +è +siamo +siete +sia +siate +siano +sarò +sarai +sarà +saremo +sarete +saranno +sarei +saresti +sarebbe +saremmo +sareste +sarebbero +ero +eri +era +eravamo +eravate +erano +fui +fosti +fu +fummo +foste +furono +fossi +fosse +fossimo +fossero +essendo +faccio +fai +facciamo +fanno +faccia +facciate +facciano +farò +farai +farà +faremo +farete +faranno +farei +faresti +farebbe +faremmo +fareste +farebbero +facevo +facevi +faceva +facevamo +facevate +facevano +feci +facesti +fece +facemmo +faceste +fecero +facessi +facesse +facessimo +facessero +facendo +sto +stai +sta +stiamo +stanno +stia +stiate +stiano +starò +starai +starà +staremo +starete +staranno +starei +staresti +starebbe +staremmo +stareste +starebbero +stavo +stavi +stava +stavamo +stavate +stavano +stetti +stesti +stette +stemmo +steste +stettero +stessi +stesse +stessimo +stessero +stando diff --git a/src/backend/snowball/stopwords/nepali.stop b/src/backend/snowball/stopwords/nepali.stop new file mode 100644 index 0000000..42e24a5 --- /dev/null +++ b/src/backend/snowball/stopwords/nepali.stop @@ -0,0 +1,304 @@ +अक्सर +अगाडि +अगाडी +अझै +अनुसार +अन्तर्गत +अन्य +अन्यथा +अब +अरु +अरू +अर्का +अर्की +अर्को +अर्थात +अर्थात् +अर्ब +अलग +अलिकति +असार +आइतवार +आए +आज +आठ +आत्म +आदि +आफू +आफ्नै +आफ्नो +आयो +आश्विन +उदाहरण +उन +उप +उही +एउटै +एक +एकदम +एकै +ओठ +औं +कति +कतै +कत्रा +कत्री +कत्रो +करोड +कस +कसरी +कसै +कस्ता +कस्ती +कस्तो +कहिल्यै +कहीं +का +कार्तिक +कि +किन +किनभने +कुन +कुनै +कुरा +कृपया +के +केहि +केही +को +कोही +क्रमशः +खर्ब +गयौ +चाँडै +चार +चाले +चाहनुहुन्छ +चाहन्छु +चाहिए +चैत +चौथो +छ +छन् +छु +छू +छैन +छौँ +छौं +जताततै +जति +जत्रा +जत्री +जत्रो +जब +जबकि +जस +जस्ता +जस्ती +जस्तो +जस्तोसुकै +जहाँ +जान +जाहिर +जुन +जे +जेठ +जो +जोसुकै +ठीक +त +तत्काल +तथा +तदनुसार +तपाई +तपाईं +तर +तल +तापनि +तापनी +तिन +तिनी +तिमी +तिर +ती +तीन +तुरुन्तै +तेस्कारण +तेस्रो +त्यसकारण +त्यसपछि +त्यसमा +त्यसैले +त्यहाँ +त्यो +त्सपछि +त्सैले +थिए +थिएन +थिएनन् +थियो +थोरै +दस +दिए +दिनुभएको +दिनुहुन्छ +दुई +देख +देखि +देखिन्छ +देखियो +देखे +देखेको +देखेर +देख्न +दोश्रो +दोस्रो +धेरै +न +नजिकै +नत्र +नयाँ +नि +निम्ति +निम्न +निम्नानुसार +निर्दिष्ट +नै +नौ +पक्का +पक्कै +पछि +पछिल्लो +पटक +पनि +पर्छ +पर्थ्यो +पर्याप्त +पर्सी +पहिले +पहिलो +पहिल्यै +पाँच +पाँचौं +पूर्व +पौष +प्रति +प्रतेक +प्रत्येक +प्रथम +प्लस +फागुन +फेरि +फेरी +बने +बन्द +बन्न +बरु +बाटो +बारे +बाहिर +बाहेक +बिरुद्ध +बिशेष +बिहिवार +बीच +बुधवार +भए +भदौ +भन् +भर +भित्र +भित्री +भोलि +भोली +म +मंसिर +मङ्गलवार +महिना +मा +माघ +मात्र +माथि +मुख्य +मेरो +यति +यत्ति +यत्रा +यत्री +यत्रो +यथोचित +यदि +यद्यपि +यस +यसरी +यसो +यस्ता +यस्ती +यस्तो +यहाँ +या +यिन +यिनी +यी +यो +र +रही +रहेका +रहेको +राखे +राख्छ +राम्रो +रूप +लगभग +लाई +लाख +लागि +ले +वरिपरि +वरीपरी +वर्ष +वास्तवमा +वाहेक +विरुद्ध +विशेष +वैशाख +शनिवार +शायद +शुक्रवार +सँग +सँगै +संग +संगै +सक्छ +सट्टा +सधै +सधैं +सबै +समय +सम्भव +सम्म +सय +सही +साँच्चै +साउन +सात +साथ +साथै +सायद +सारा +सुन्ना +सो +सोध्न +सोमवार +सोही +स्पष्ट +हजार +हप्ता +हरे +हरेक +हामी +हाम्रो +हिजो +हुन्छ +होला +होस् diff --git a/src/backend/snowball/stopwords/norwegian.stop b/src/backend/snowball/stopwords/norwegian.stop new file mode 100644 index 0000000..9ac1abb --- /dev/null +++ b/src/backend/snowball/stopwords/norwegian.stop @@ -0,0 +1,176 @@ +og +i +jeg +det +at +en +et +den +til +er +som +på +de +med +han +av +ikke +ikkje +der +så +var +meg +seg +men +ett +har +om +vi +min +mitt +ha +hadde +hun +nå +over +da +ved +fra +du +ut +sin +dem +oss +opp +man +kan +hans +hvor +eller +hva +skal +selv +sjøl +her +alle +vil +bli +ble +blei +blitt +kunne +inn +når +være +kom +noen +noe +ville +dere +som +deres +kun +ja +etter +ned +skulle +denne +for +deg +si +sine +sitt +mot +å +meget +hvorfor +dette +disse +uten +hvordan +ingen +din +ditt +blir +samme +hvilken +hvilke +sånn +inni +mellom +vår +hver +hvem +vors +hvis +både +bare +enn +fordi +før +mange +også +slik +vært +være +båe +begge +siden +dykk +dykkar +dei +deira +deires +deim +di +då +eg +ein +eit +eitt +elles +honom +hjå +ho +hoe +henne +hennar +hennes +hoss +hossen +ikkje +ingi +inkje +korleis +korso +kva +kvar +kvarhelst +kven +kvi +kvifor +me +medan +mi +mine +mykje +no +nokon +noka +nokor +noko +nokre +si +sia +sidan +so +somt +somme +um +upp +vere +vore +verte +vort +varte +vart diff --git a/src/backend/snowball/stopwords/portuguese.stop b/src/backend/snowball/stopwords/portuguese.stop new file mode 100644 index 0000000..6b24778 --- /dev/null +++ b/src/backend/snowball/stopwords/portuguese.stop @@ -0,0 +1,203 @@ +de +a +o +que +e +do +da +em +um +para +com +não +uma +os +no +se +na +por +mais +as +dos +como +mas +ao +ele +das +à +seu +sua +ou +quando +muito +nos +já +eu +também +só +pelo +pela +até +isso +ela +entre +depois +sem +mesmo +aos +seus +quem +nas +me +esse +eles +você +essa +num +nem +suas +meu +às +minha +numa +pelos +elas +qual +nós +lhe +deles +essas +esses +pelas +este +dele +tu +te +vocês +vos +lhes +meus +minhas +teu +tua +teus +tuas +nosso +nossa +nossos +nossas +dela +delas +esta +estes +estas +aquele +aquela +aqueles +aquelas +isto +aquilo +estou +está +estamos +estão +estive +esteve +estivemos +estiveram +estava +estávamos +estavam +estivera +estivéramos +esteja +estejamos +estejam +estivesse +estivéssemos +estivessem +estiver +estivermos +estiverem +hei +há +havemos +hão +houve +houvemos +houveram +houvera +houvéramos +haja +hajamos +hajam +houvesse +houvéssemos +houvessem +houver +houvermos +houverem +houverei +houverá +houveremos +houverão +houveria +houveríamos +houveriam +sou +somos +são +era +éramos +eram +fui +foi +fomos +foram +fora +fôramos +seja +sejamos +sejam +fosse +fôssemos +fossem +for +formos +forem +serei +será +seremos +serão +seria +seríamos +seriam +tenho +tem +temos +tém +tinha +tínhamos +tinham +tive +teve +tivemos +tiveram +tivera +tivéramos +tenha +tenhamos +tenham +tivesse +tivéssemos +tivessem +tiver +tivermos +tiverem +terei +terá +teremos +terão +teria +teríamos +teriam diff --git a/src/backend/snowball/stopwords/russian.stop b/src/backend/snowball/stopwords/russian.stop new file mode 100644 index 0000000..ecb83d4 --- /dev/null +++ b/src/backend/snowball/stopwords/russian.stop @@ -0,0 +1,151 @@ +и +в +во +не +что +он +на +я +с +со +как +а +то +все +она +так +его +но +да +ты +к +у +же +вы +за +бы +по +только +ее +мне +было +вот +от +меня +еще +нет +о +из +ему +теперь +когда +даже +ну +вдруг +ли +если +уже +или +ни +быть +был +него +до +вас +нибудь +опять +уж +вам +ведь +там +потом +себя +ничего +ей +может +они +тут +где +есть +надо +ней +для +мы +тебя +их +чем +была +сам +чтоб +без +будто +чего +раз +тоже +себе +под +будет +ж +тогда +кто +этот +того +потому +этого +какой +совсем +ним +здесь +этом +один +почти +мой +тем +чтобы +нее +сейчас +были +куда +зачем +всех +никогда +можно +при +наконец +два +об +другой +хоть +после +над +больше +тот +через +эти +нас +про +всего +них +какая +много +разве +три +эту +моя +впрочем +хорошо +свою +этой +перед +иногда +лучше +чуть +том +нельзя +такой +им +более +всегда +конечно +всю +между diff --git a/src/backend/snowball/stopwords/spanish.stop b/src/backend/snowball/stopwords/spanish.stop new file mode 100644 index 0000000..59bc786 --- /dev/null +++ b/src/backend/snowball/stopwords/spanish.stop @@ -0,0 +1,313 @@ +de +la +que +el +en +y +a +los +del +se +las +por +un +para +con +no +una +su +al +lo +como +más +pero +sus +le +ya +o +este +sí +porque +esta +entre +cuando +muy +sin +sobre +también +me +hasta +hay +donde +quien +desde +todo +nos +durante +todos +uno +les +ni +contra +otros +ese +eso +ante +ellos +e +esto +mí +antes +algunos +qué +unos +yo +otro +otras +otra +él +tanto +esa +estos +mucho +quienes +nada +muchos +cual +poco +ella +estar +estas +algunas +algo +nosotros +mi +mis +tú +te +ti +tu +tus +ellas +nosotras +vosostros +vosostras +os +mío +mía +míos +mías +tuyo +tuya +tuyos +tuyas +suyo +suya +suyos +suyas +nuestro +nuestra +nuestros +nuestras +vuestro +vuestra +vuestros +vuestras +esos +esas +estoy +estás +está +estamos +estáis +están +esté +estés +estemos +estéis +estén +estaré +estarás +estará +estaremos +estaréis +estarán +estaría +estarías +estaríamos +estaríais +estarían +estaba +estabas +estábamos +estabais +estaban +estuve +estuviste +estuvo +estuvimos +estuvisteis +estuvieron +estuviera +estuvieras +estuviéramos +estuvierais +estuvieran +estuviese +estuvieses +estuviésemos +estuvieseis +estuviesen +estando +estado +estada +estados +estadas +estad +he +has +ha +hemos +habéis +han +haya +hayas +hayamos +hayáis +hayan +habré +habrás +habrá +habremos +habréis +habrán +habría +habrías +habríamos +habríais +habrían +había +habías +habíamos +habíais +habían +hube +hubiste +hubo +hubimos +hubisteis +hubieron +hubiera +hubieras +hubiéramos +hubierais +hubieran +hubiese +hubieses +hubiésemos +hubieseis +hubiesen +habiendo +habido +habida +habidos +habidas +soy +eres +es +somos +sois +son +sea +seas +seamos +seáis +sean +seré +serás +será +seremos +seréis +serán +sería +serías +seríamos +seríais +serían +era +eras +éramos +erais +eran +fui +fuiste +fue +fuimos +fuisteis +fueron +fuera +fueras +fuéramos +fuerais +fueran +fuese +fueses +fuésemos +fueseis +fuesen +sintiendo +sentido +sentida +sentidos +sentidas +siente +sentid +tengo +tienes +tiene +tenemos +tenéis +tienen +tenga +tengas +tengamos +tengáis +tengan +tendré +tendrás +tendrá +tendremos +tendréis +tendrán +tendría +tendrías +tendríamos +tendríais +tendrían +tenía +tenías +teníamos +teníais +tenían +tuve +tuviste +tuvo +tuvimos +tuvisteis +tuvieron +tuviera +tuvieras +tuviéramos +tuvierais +tuvieran +tuviese +tuvieses +tuviésemos +tuvieseis +tuviesen +teniendo +tenido +tenida +tenidos +tenidas +tened diff --git a/src/backend/snowball/stopwords/swedish.stop b/src/backend/snowball/stopwords/swedish.stop new file mode 100644 index 0000000..742bb62 --- /dev/null +++ b/src/backend/snowball/stopwords/swedish.stop @@ -0,0 +1,114 @@ +och +det +att +i +en +jag +hon +som +han +på +den +med +var +sig +för +så +till +är +men +ett +om +hade +de +av +icke +mig +du +henne +då +sin +nu +har +inte +hans +honom +skulle +hennes +där +min +man +ej +vid +kunde +något +från +ut +när +efter +upp +vi +dem +vara +vad +över +än +dig +kan +sina +här +ha +mot +alla +under +någon +eller +allt +mycket +sedan +ju +denna +själv +detta +åt +utan +varit +hur +ingen +mitt +ni +bli +blev +oss +din +dessa +några +deras +blir +mina +samma +vilken +er +sådan +vår +blivit +dess +inom +mellan +sådant +varför +varje +vilka +ditt +vem +vilket +sitta +sådana +vart +dina +vars +vårt +våra +ert +era +vilkas diff --git a/src/backend/snowball/stopwords/turkish.stop b/src/backend/snowball/stopwords/turkish.stop new file mode 100644 index 0000000..5a48ccc --- /dev/null +++ b/src/backend/snowball/stopwords/turkish.stop @@ -0,0 +1,53 @@ +acaba +ama +aslında +az +bazı +belki +biri +birkaç +birşey +biz +bu +çok +çünkü +da +daha +de +defa +diye +eğer +en +gibi +hem +hep +hepsi +her +hiç +için +ile +ise +kez +ki +kim +mı +mu +mü +nasıl +ne +neden +nerde +nerede +nereye +niçin +niye +o +sanki +şey +siz +şu +tüm +ve +veya +ya +yani |