diff options
Diffstat (limited to 'contrib/tsearch2/snowball')
-rw-r--r-- | contrib/tsearch2/snowball/Makefile | 27 | ||||
-rw-r--r-- | contrib/tsearch2/snowball/api.c | 85 | ||||
-rw-r--r-- | contrib/tsearch2/snowball/api.h | 34 | ||||
-rw-r--r-- | contrib/tsearch2/snowball/english_stem.c | 1623 | ||||
-rw-r--r-- | contrib/tsearch2/snowball/english_stem.h | 18 | ||||
-rw-r--r-- | contrib/tsearch2/snowball/header.h | 56 | ||||
-rw-r--r-- | contrib/tsearch2/snowball/russian_stem.c | 928 | ||||
-rw-r--r-- | contrib/tsearch2/snowball/russian_stem.h | 17 | ||||
-rw-r--r-- | contrib/tsearch2/snowball/russian_stem_UTF8.c | 942 | ||||
-rw-r--r-- | contrib/tsearch2/snowball/russian_stem_UTF8.h | 17 | ||||
-rw-r--r-- | contrib/tsearch2/snowball/utilities.c | 656 |
11 files changed, 0 insertions, 4403 deletions
diff --git a/contrib/tsearch2/snowball/Makefile b/contrib/tsearch2/snowball/Makefile deleted file mode 100644 index dd5c84d723..0000000000 --- a/contrib/tsearch2/snowball/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -# $PostgreSQL: pgsql/contrib/tsearch2/snowball/Makefile,v 1.10 2007/06/26 22:05:03 tgl Exp $ - -SUBOBJS = english_stem.o api.o russian_stem.o russian_stem_UTF8.o utilities.o - -EXTRA_CLEAN = SUBSYS.o $(SUBOBJS) - -PG_CPPFLAGS = -I$(srcdir)/.. - -ifdef USE_PGXS -PG_CONFIG = pg_config -PGXS := $(shell $(PG_CONFIG) --pgxs) -include $(PGXS) -else -subdir = contrib/tsearch2/snowball -top_builddir = ../../.. -include $(top_builddir)/src/Makefile.global -include $(top_srcdir)/contrib/contrib-global.mk -endif - -override CFLAGS += $(CFLAGS_SL) - -all: SUBSYS.o - -SUBSYS.o: $(SUBOBJS) - $(LD) $(LDREL) $(LDOUT) $@ $^ - - diff --git a/contrib/tsearch2/snowball/api.c b/contrib/tsearch2/snowball/api.c deleted file mode 100644 index 78e4fe0eef..0000000000 --- a/contrib/tsearch2/snowball/api.c +++ /dev/null @@ -1,85 +0,0 @@ - -#include <stdlib.h> /* for calloc, free */ -#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; - } - z->S_size = S_size; - } - - if (I_size) - { - z->I = (int *) calloc(I_size, sizeof(int)); - if (z->I == NULL) - goto error; - z->I_size = I_size; - } - - if (B_size) - { - z->B = (symbol *) calloc(B_size, sizeof(symbol)); - if (z->B == NULL) - goto error; - z->B_size = B_size; - } - - return z; -error: - SN_close_env(z); - return NULL; -} - -extern void -SN_close_env(struct SN_env * z) -{ - if (z == NULL) - return; - if (z->S_size) - { - int i; - - for (i = 0; i < z->S_size; i++) - { - lose_s(z->S[i]); - } - free(z->S); - } - if (z->I_size) - free(z->I); - if (z->B_size) - 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/contrib/tsearch2/snowball/api.h b/contrib/tsearch2/snowball/api.h deleted file mode 100644 index a66935efcc..0000000000 --- a/contrib/tsearch2/snowball/api.h +++ /dev/null @@ -1,34 +0,0 @@ - -typedef unsigned char symbol; - -/* Or replace 'char' above with 'short' for 16 bit characters. - - More precisely, replace 'char' with whatever type guarantees the - character width you need. Note however that sizeof(symbol) should divide - HEAD, defined in header.h as 2*sizeof(int), without remainder, otherwise - there is an alignment problem. In the unlikely event of a problem here, - consult Martin Porter. - -*/ - -struct SN_env -{ - symbol *p; - int c; - int a; - int l; - int lb; - int bra; - int ket; - int S_size; - int I_size; - int B_size; - symbol **S; - int *I; - symbol *B; -}; - -extern struct SN_env *SN_create_env(int S_size, int I_size, int B_size); -extern void SN_close_env(struct SN_env * z); - -extern int SN_set_current(struct SN_env * z, int size, const symbol * s); diff --git a/contrib/tsearch2/snowball/english_stem.c b/contrib/tsearch2/snowball/english_stem.c deleted file mode 100644 index 9f6f65491c..0000000000 --- a/contrib/tsearch2/snowball/english_stem.c +++ /dev/null @@ -1,1623 +0,0 @@ -/* $PostgreSQL: pgsql/contrib/tsearch2/snowball/english_stem.c,v 1.8 2006/03/11 04:38:30 momjian Exp $ */ - -/* This file was generated automatically by the Snowball to ANSI C compiler */ - -#include "header.h" - -extern int english_ISO_8859_1_stem(struct SN_env * z); -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); - -extern struct SN_env *english_ISO_8859_1_create_env(void); -extern void english_ISO_8859_1_close_env(struct SN_env * z); - -static symbol s_0_0[6] = {'c', 'o', 'm', 'm', 'u', 'n'}; -static symbol s_0_1[5] = {'g', 'e', 'n', 'e', 'r'}; - -static struct among a_0[2] = -{ - /* 0 */ {6, s_0_0, -1, -1, 0}, - /* 1 */ {5, s_0_1, -1, -1, 0} -}; - -static symbol s_1_0[1] = {'\''}; -static symbol s_1_1[3] = {'\'', 's', '\''}; -static symbol s_1_2[2] = {'\'', 's'}; - -static 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 symbol s_2_0[3] = {'i', 'e', 'd'}; -static symbol s_2_1[1] = {'s'}; -static symbol s_2_2[3] = {'i', 'e', 's'}; -static symbol s_2_3[4] = {'s', 's', 'e', 's'}; -static symbol s_2_4[2] = {'s', 's'}; -static symbol s_2_5[2] = {'u', 's'}; - -static 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 symbol s_3_1[2] = {'b', 'b'}; -static symbol s_3_2[2] = {'d', 'd'}; -static symbol s_3_3[2] = {'f', 'f'}; -static symbol s_3_4[2] = {'g', 'g'}; -static symbol s_3_5[2] = {'b', 'l'}; -static symbol s_3_6[2] = {'m', 'm'}; -static symbol s_3_7[2] = {'n', 'n'}; -static symbol s_3_8[2] = {'p', 'p'}; -static symbol s_3_9[2] = {'r', 'r'}; -static symbol s_3_10[2] = {'a', 't'}; -static symbol s_3_11[2] = {'t', 't'}; -static symbol s_3_12[2] = {'i', 'z'}; - -static 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 symbol s_4_0[2] = {'e', 'd'}; -static symbol s_4_1[3] = {'e', 'e', 'd'}; -static symbol s_4_2[3] = {'i', 'n', 'g'}; -static symbol s_4_3[4] = {'e', 'd', 'l', 'y'}; -static symbol s_4_4[5] = {'e', 'e', 'd', 'l', 'y'}; -static symbol s_4_5[5] = {'i', 'n', 'g', 'l', 'y'}; - -static 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 symbol s_5_0[4] = {'a', 'n', 'c', 'i'}; -static symbol s_5_1[4] = {'e', 'n', 'c', 'i'}; -static symbol s_5_2[3] = {'o', 'g', 'i'}; -static symbol s_5_3[2] = {'l', 'i'}; -static symbol s_5_4[3] = {'b', 'l', 'i'}; -static symbol s_5_5[4] = {'a', 'b', 'l', 'i'}; -static symbol s_5_6[4] = {'a', 'l', 'l', 'i'}; -static symbol s_5_7[5] = {'f', 'u', 'l', 'l', 'i'}; -static symbol s_5_8[6] = {'l', 'e', 's', 's', 'l', 'i'}; -static symbol s_5_9[5] = {'o', 'u', 's', 'l', 'i'}; -static symbol s_5_10[5] = {'e', 'n', 't', 'l', 'i'}; -static symbol s_5_11[5] = {'a', 'l', 'i', 't', 'i'}; -static symbol s_5_12[6] = {'b', 'i', 'l', 'i', 't', 'i'}; -static symbol s_5_13[5] = {'i', 'v', 'i', 't', 'i'}; -static symbol s_5_14[6] = {'t', 'i', 'o', 'n', 'a', 'l'}; -static symbol s_5_15[7] = {'a', 't', 'i', 'o', 'n', 'a', 'l'}; -static symbol s_5_16[5] = {'a', 'l', 'i', 's', 'm'}; -static symbol s_5_17[5] = {'a', 't', 'i', 'o', 'n'}; -static symbol s_5_18[7] = {'i', 'z', 'a', 't', 'i', 'o', 'n'}; -static symbol s_5_19[4] = {'i', 'z', 'e', 'r'}; -static symbol s_5_20[4] = {'a', 't', 'o', 'r'}; -static symbol s_5_21[7] = {'i', 'v', 'e', 'n', 'e', 's', 's'}; -static symbol s_5_22[7] = {'f', 'u', 'l', 'n', 'e', 's', 's'}; -static symbol s_5_23[7] = {'o', 'u', 's', 'n', 'e', 's', 's'}; - -static struct among a_5[24] = -{ - /* 0 */ {4, s_5_0, -1, 3, 0}, - /* 1 */ {4, s_5_1, -1, 2, 0}, - /* 2 */ {3, s_5_2, -1, 13, 0}, - /* 3 */ {2, s_5_3, -1, 16, 0}, - /* 4 */ {3, s_5_4, 3, 12, 0}, - /* 5 */ {4, s_5_5, 4, 4, 0}, - /* 6 */ {4, s_5_6, 3, 8, 0}, - /* 7 */ {5, s_5_7, 3, 14, 0}, - /* 8 */ {6, s_5_8, 3, 15, 0}, - /* 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 symbol s_6_0[5] = {'i', 'c', 'a', 't', 'e'}; -static symbol s_6_1[5] = {'a', 't', 'i', 'v', 'e'}; -static symbol s_6_2[5] = {'a', 'l', 'i', 'z', 'e'}; -static symbol s_6_3[5] = {'i', 'c', 'i', 't', 'i'}; -static symbol s_6_4[4] = {'i', 'c', 'a', 'l'}; -static symbol s_6_5[6] = {'t', 'i', 'o', 'n', 'a', 'l'}; -static symbol s_6_6[7] = {'a', 't', 'i', 'o', 'n', 'a', 'l'}; -static symbol s_6_7[3] = {'f', 'u', 'l'}; -static symbol s_6_8[4] = {'n', 'e', 's', 's'}; - -static 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 symbol s_7_0[2] = {'i', 'c'}; -static symbol s_7_1[4] = {'a', 'n', 'c', 'e'}; -static symbol s_7_2[4] = {'e', 'n', 'c', 'e'}; -static symbol s_7_3[4] = {'a', 'b', 'l', 'e'}; -static symbol s_7_4[4] = {'i', 'b', 'l', 'e'}; -static symbol s_7_5[3] = {'a', 't', 'e'}; -static symbol s_7_6[3] = {'i', 'v', 'e'}; -static symbol s_7_7[3] = {'i', 'z', 'e'}; -static symbol s_7_8[3] = {'i', 't', 'i'}; -static symbol s_7_9[2] = {'a', 'l'}; -static symbol s_7_10[3] = {'i', 's', 'm'}; -static symbol s_7_11[3] = {'i', 'o', 'n'}; -static symbol s_7_12[2] = {'e', 'r'}; -static symbol s_7_13[3] = {'o', 'u', 's'}; -static symbol s_7_14[3] = {'a', 'n', 't'}; -static symbol s_7_15[3] = {'e', 'n', 't'}; -static symbol s_7_16[4] = {'m', 'e', 'n', 't'}; -static symbol s_7_17[5] = {'e', 'm', 'e', 'n', 't'}; - -static 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 symbol s_8_0[1] = {'e'}; -static symbol s_8_1[1] = {'l'}; - -static struct among a_8[2] = -{ - /* 0 */ {1, s_8_0, -1, 1, 0}, - /* 1 */ {1, s_8_1, -1, 2, 0} -}; - -static symbol s_9_0[7] = {'s', 'u', 'c', 'c', 'e', 'e', 'd'}; -static symbol s_9_1[7] = {'p', 'r', 'o', 'c', 'e', 'e', 'd'}; -static symbol s_9_2[6] = {'e', 'x', 'c', 'e', 'e', 'd'}; -static symbol s_9_3[7] = {'c', 'a', 'n', 'n', 'i', 'n', 'g'}; -static symbol s_9_4[6] = {'i', 'n', 'n', 'i', 'n', 'g'}; -static symbol s_9_5[7] = {'e', 'a', 'r', 'r', 'i', 'n', 'g'}; -static symbol s_9_6[7] = {'h', 'e', 'r', 'r', 'i', 'n', 'g'}; -static symbol s_9_7[6] = {'o', 'u', 't', 'i', 'n', 'g'}; - -static 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 symbol s_10_0[5] = {'a', 'n', 'd', 'e', 's'}; -static symbol s_10_1[5] = {'a', 't', 'l', 'a', 's'}; -static symbol s_10_2[4] = {'b', 'i', 'a', 's'}; -static symbol s_10_3[6] = {'c', 'o', 's', 'm', 'o', 's'}; -static symbol s_10_4[5] = {'d', 'y', 'i', 'n', 'g'}; -static symbol s_10_5[5] = {'e', 'a', 'r', 'l', 'y'}; -static symbol s_10_6[6] = {'g', 'e', 'n', 't', 'l', 'y'}; -static symbol s_10_7[4] = {'h', 'o', 'w', 'e'}; -static symbol s_10_8[4] = {'i', 'd', 'l', 'y'}; -static symbol s_10_9[5] = {'l', 'y', 'i', 'n', 'g'}; -static symbol s_10_10[4] = {'n', 'e', 'w', 's'}; -static symbol s_10_11[4] = {'o', 'n', 'l', 'y'}; -static symbol s_10_12[6] = {'s', 'i', 'n', 'g', 'l', 'y'}; -static symbol s_10_13[5] = {'s', 'k', 'i', 'e', 's'}; -static symbol s_10_14[4] = {'s', 'k', 'i', 's'}; -static symbol s_10_15[3] = {'s', 'k', 'y'}; -static symbol s_10_16[5] = {'t', 'y', 'i', 'n', 'g'}; -static symbol s_10_17[4] = {'u', 'g', 'l', 'y'}; - -static 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 unsigned char g_v[] = {17, 65, 16, 1}; - -static unsigned char g_v_WXY[] = {1, 17, 65, 208, 1}; - -static unsigned char g_valid_LI[] = {55, 141, 2}; - -static symbol s_0[] = {'\''}; -static symbol s_1[] = {'y'}; -static symbol s_2[] = {'Y'}; -static symbol s_3[] = {'y'}; -static symbol s_4[] = {'Y'}; -static symbol s_5[] = {'s', 's'}; -static symbol s_6[] = {'i', 'e'}; -static symbol s_7[] = {'i'}; -static symbol s_8[] = {'e', 'e'}; -static symbol s_9[] = {'e'}; -static symbol s_10[] = {'e'}; -static symbol s_11[] = {'y'}; -static symbol s_12[] = {'Y'}; -static symbol s_13[] = {'i'}; -static symbol s_14[] = {'t', 'i', 'o', 'n'}; -static symbol s_15[] = {'e', 'n', 'c', 'e'}; -static symbol s_16[] = {'a', 'n', 'c', 'e'}; -static symbol s_17[] = {'a', 'b', 'l', 'e'}; -static symbol s_18[] = {'e', 'n', 't'}; -static symbol s_19[] = {'i', 'z', 'e'}; -static symbol s_20[] = {'a', 't', 'e'}; -static symbol s_21[] = {'a', 'l'}; -static symbol s_22[] = {'f', 'u', 'l'}; -static symbol s_23[] = {'o', 'u', 's'}; -static symbol s_24[] = {'i', 'v', 'e'}; -static symbol s_25[] = {'b', 'l', 'e'}; -static symbol s_26[] = {'l'}; -static symbol s_27[] = {'o', 'g'}; -static symbol s_28[] = {'f', 'u', 'l'}; -static symbol s_29[] = {'l', 'e', 's', 's'}; -static symbol s_30[] = {'t', 'i', 'o', 'n'}; -static symbol s_31[] = {'a', 't', 'e'}; -static symbol s_32[] = {'a', 'l'}; -static symbol s_33[] = {'i', 'c'}; -static symbol s_34[] = {'s'}; -static symbol s_35[] = {'t'}; -static symbol s_36[] = {'l'}; -static symbol s_37[] = {'s', 'k', 'i'}; -static symbol s_38[] = {'s', 'k', 'y'}; -static symbol s_39[] = {'d', 'i', 'e'}; -static symbol s_40[] = {'l', 'i', 'e'}; -static symbol s_41[] = {'t', 'i', 'e'}; -static symbol s_42[] = {'i', 'd', 'l'}; -static symbol s_43[] = {'g', 'e', 'n', 't', 'l'}; -static symbol s_44[] = {'u', 'g', 'l', 'i'}; -static symbol s_45[] = {'e', 'a', 'r', 'l', 'i'}; -static symbol s_46[] = {'o', 'n', 'l', 'i'}; -static symbol s_47[] = {'s', 'i', 'n', 'g', 'l'}; -static symbol s_48[] = {'Y'}; -static symbol s_49[] = {'y'}; - -static int -r_prelude(struct SN_env * z) -{ - z->B[0] = 0; /* unset Y_found, line 26 */ - { - int c = z->c; /* do, line 27 */ - - z->bra = z->c; /* [, line 27 */ - if (!(eq_s(z, 1, s_0))) - goto lab0; - z->ket = z->c; /* ], line 27 */ - { - int ret; - - ret = slice_del(z); /* delete, line 27 */ - if (ret < 0) - return ret; - } -lab0: - z->c = c; - } - { - int c = z->c; /* do, line 28 */ - - z->bra = z->c; /* [, line 28 */ - if (!(eq_s(z, 1, s_1))) - goto lab1; - z->ket = z->c; /* ], line 28 */ - if (!(in_grouping(z, g_v, 97, 121))) - goto lab1; - { - int ret; - - ret = slice_from_s(z, 1, s_2); /* <-, line 28 */ - if (ret < 0) - return ret; - } - z->B[0] = 1; /* set Y_found, line 28 */ -lab1: - z->c = c; - } - { - int c = z->c; /* do, line 29 */ - - while (1) - { /* repeat, line 29 */ - int c = z->c; - - while (1) - { /* goto, line 29 */ - int c = z->c; - - if (!(in_grouping(z, g_v, 97, 121))) - goto lab4; - z->bra = z->c; /* [, line 29 */ - if (!(eq_s(z, 1, s_3))) - goto lab4; - z->ket = z->c; /* ], line 29 */ - z->c = c; - break; - lab4: - z->c = c; - if (z->c >= z->l) - goto lab3; - z->c++; /* goto, line 29 */ - } - { - int ret; - - ret = slice_from_s(z, 1, s_4); /* <-, line 29 */ - if (ret < 0) - return ret; - } - z->B[0] = 1; /* set Y_found, line 29 */ - continue; - lab3: - z->c = c; - break; - } - z->c = c; - } - return 1; -} - -static int -r_mark_regions(struct SN_env * z) -{ - z->I[0] = z->l; - z->I[1] = z->l; - { - int c = z->c; /* do, line 35 */ - - { - int c = z->c; /* or, line 40 */ - - if (!(find_among(z, a_0, 2))) - goto lab2; /* among, line 36 */ - goto lab1; - lab2: - z->c = c; - while (1) - { /* gopast, line 40 */ - if (!(in_grouping(z, g_v, 97, 121))) - goto lab3; - break; - lab3: - if (z->c >= z->l) - goto lab0; - z->c++; /* gopast, line 40 */ - } - while (1) - { /* gopast, line 40 */ - if (!(out_grouping(z, g_v, 97, 121))) - goto lab4; - break; - lab4: - if (z->c >= z->l) - goto lab0; - z->c++; /* gopast, line 40 */ - } - } -lab1: - z->I[0] = z->c; /* setmark p1, line 41 */ - while (1) - { /* gopast, line 42 */ - if (!(in_grouping(z, g_v, 97, 121))) - goto lab5; - break; - lab5: - if (z->c >= z->l) - goto lab0; - z->c++; /* gopast, line 42 */ - } - while (1) - { /* gopast, line 42 */ - if (!(out_grouping(z, g_v, 97, 121))) - goto lab6; - break; - lab6: - if (z->c >= z->l) - goto lab0; - z->c++; /* gopast, line 42 */ - } - z->I[1] = z->c; /* setmark p2, line 42 */ -lab0: - z->c = c; - } - return 1; -} - -static int -r_shortv(struct SN_env * z) -{ - { - int m = z->l - z->c; - - (void) m; /* or, line 50 */ - if (!(out_grouping_b(z, g_v_WXY, 89, 121))) - goto lab1; - if (!(in_grouping_b(z, g_v, 97, 121))) - goto lab1; - if (!(out_grouping_b(z, g_v, 97, 121))) - goto lab1; - goto lab0; -lab1: - z->c = z->l - m; - if (!(out_grouping_b(z, g_v, 97, 121))) - return 0; - if (!(in_grouping_b(z, g_v, 97, 121))) - return 0; - if (z->c > z->lb) - return 0; /* atlimit, line 51 */ - } -lab0: - return 1; -} - -static int -r_R1(struct SN_env * z) -{ - if (!(z->I[0] <= z->c)) - return 0; - return 1; -} - -static int -r_R2(struct SN_env * z) -{ - if (!(z->I[1] <= z->c)) - return 0; - return 1; -} - -static int -r_Step_1a(struct SN_env * z) -{ - int among_var; - - { - int m = z->l - z->c; - - (void) m; /* try, line 58 */ - z->ket = z->c; /* [, line 59 */ - among_var = find_among_b(z, a_1, 3); /* substring, line 59 */ - if (!(among_var)) - { - z->c = z->l - m; - goto lab0; - } - z->bra = z->c; /* ], line 59 */ - switch (among_var) - { - case 0: - { - z->c = z->l - m; - goto lab0; - } - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 61 */ - if (ret < 0) - return ret; - } - break; - } -lab0: - ; - } - z->ket = z->c; /* [, line 64 */ - among_var = find_among_b(z, a_2, 6); /* substring, line 64 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 64 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_from_s(z, 2, s_5); /* <-, line 65 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int m = z->l - z->c; - - (void) m; /* or, line 67 */ - if (z->c <= z->lb) - goto lab2; - z->c--; /* next, line 67 */ - if (z->c > z->lb) - goto lab2; /* atlimit, line 67 */ - { - int ret; - - ret = slice_from_s(z, 2, s_6); /* <-, line 67 */ - if (ret < 0) - return ret; - } - goto lab1; - lab2: - z->c = z->l - m; - { - int ret; - - ret = slice_from_s(z, 1, s_7); /* <-, line 67 */ - if (ret < 0) - return ret; - } - } - lab1: - break; - case 3: - if (z->c <= z->lb) - return 0; - z->c--; /* next, line 68 */ - while (1) - { /* gopast, line 68 */ - if (!(in_grouping_b(z, g_v, 97, 121))) - goto lab3; - break; - lab3: - if (z->c <= z->lb) - return 0; - z->c--; /* gopast, line 68 */ - } - { - int ret; - - ret = slice_del(z); /* delete, line 68 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_Step_1b(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 74 */ - among_var = find_among_b(z, a_4, 6); /* substring, line 74 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 74 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret = r_R1(z); - - if (ret == 0) - return 0; /* call R1, line 76 */ - if (ret < 0) - return ret; - } - { - int ret; - - ret = slice_from_s(z, 2, s_8); /* <-, line 76 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int m_test = z->l - z->c; /* test, line 79 */ - - while (1) - { /* gopast, line 79 */ - if (!(in_grouping_b(z, g_v, 97, 121))) - goto lab0; - break; - lab0: - if (z->c <= z->lb) - return 0; - z->c--; /* gopast, line 79 */ - } - z->c = z->l - m_test; - } - { - int ret; - - ret = slice_del(z); /* delete, line 79 */ - if (ret < 0) - return ret; - } - { - int m_test = z->l - z->c; /* test, line 80 */ - - among_var = find_among_b(z, a_3, 13); /* substring, line 80 */ - if (!(among_var)) - return 0; - z->c = z->l - m_test; - } - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - { - int c = z->c; - - ret = insert_s(z, z->c, z->c, 1, s_9); /* <+, line 82 */ - z->c = c; - } - if (ret < 0) - return ret; - } - break; - case 2: - z->ket = z->c; /* [, line 85 */ - if (z->c <= z->lb) - return 0; - z->c--; /* next, line 85 */ - z->bra = z->c; /* ], line 85 */ - { - int ret; - - ret = slice_del(z); /* delete, line 85 */ - if (ret < 0) - return ret; - } - break; - case 3: - if (z->c != z->I[0]) - return 0; /* atmark, line 86 */ - { - int m_test = z->l - z->c; /* test, line 86 */ - - { - int ret = r_shortv(z); - - if (ret == 0) - return 0; /* call shortv, line 86 */ - if (ret < 0) - return ret; - } - z->c = z->l - m_test; - } - { - int ret; - - { - int c = z->c; - - ret = insert_s(z, z->c, z->c, 1, s_10); /* <+, line 86 */ - z->c = c; - } - if (ret < 0) - return ret; - } - break; - } - break; - } - return 1; -} - -static int -r_Step_1c(struct SN_env * z) -{ - z->ket = z->c; /* [, line 93 */ - { - int m = z->l - z->c; - - (void) m; /* or, line 93 */ - if (!(eq_s_b(z, 1, s_11))) - goto lab1; - goto lab0; -lab1: - z->c = z->l - m; - if (!(eq_s_b(z, 1, s_12))) - return 0; - } -lab0: - z->bra = z->c; /* ], line 93 */ - if (!(out_grouping_b(z, g_v, 97, 121))) - return 0; - { - int m = z->l - z->c; - - (void) m; /* not, line 94 */ - if (z->c > z->lb) - goto lab2; /* atlimit, line 94 */ - return 0; -lab2: - z->c = z->l - m; - } - { - int ret; - - ret = slice_from_s(z, 1, s_13); /* <-, line 95 */ - if (ret < 0) - return ret; - } - return 1; -} - -static int -r_Step_2(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 99 */ - among_var = find_among_b(z, a_5, 24); /* substring, line 99 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 99 */ - { - int ret = r_R1(z); - - if (ret == 0) - return 0; /* call R1, line 99 */ - if (ret < 0) - return ret; - } - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_from_s(z, 4, s_14); /* <-, line 100 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int ret; - - ret = slice_from_s(z, 4, s_15); /* <-, line 101 */ - if (ret < 0) - return ret; - } - break; - case 3: - { - int ret; - - ret = slice_from_s(z, 4, s_16); /* <-, line 102 */ - if (ret < 0) - return ret; - } - break; - case 4: - { - int ret; - - ret = slice_from_s(z, 4, s_17); /* <-, line 103 */ - if (ret < 0) - return ret; - } - break; - case 5: - { - int ret; - - ret = slice_from_s(z, 3, s_18); /* <-, line 104 */ - if (ret < 0) - return ret; - } - break; - case 6: - { - int ret; - - ret = slice_from_s(z, 3, s_19); /* <-, line 106 */ - if (ret < 0) - return ret; - } - break; - case 7: - { - int ret; - - ret = slice_from_s(z, 3, s_20); /* <-, line 108 */ - if (ret < 0) - return ret; - } - break; - case 8: - { - int ret; - - ret = slice_from_s(z, 2, s_21); /* <-, line 110 */ - if (ret < 0) - return ret; - } - break; - case 9: - { - int ret; - - ret = slice_from_s(z, 3, s_22); /* <-, line 111 */ - if (ret < 0) - return ret; - } - break; - case 10: - { - int ret; - - ret = slice_from_s(z, 3, s_23); /* <-, line 113 */ - if (ret < 0) - return ret; - } - break; - case 11: - { - int ret; - - ret = slice_from_s(z, 3, s_24); /* <-, line 115 */ - if (ret < 0) - return ret; - } - break; - case 12: - { - int ret; - - ret = slice_from_s(z, 3, s_25); /* <-, line 117 */ - if (ret < 0) - return ret; - } - break; - case 13: - if (!(eq_s_b(z, 1, s_26))) - return 0; - { - int ret; - - ret = slice_from_s(z, 2, s_27); /* <-, line 118 */ - if (ret < 0) - return ret; - } - break; - case 14: - { - int ret; - - ret = slice_from_s(z, 3, s_28); /* <-, line 119 */ - if (ret < 0) - return ret; - } - break; - case 15: - { - int ret; - - ret = slice_from_s(z, 4, s_29); /* <-, line 120 */ - if (ret < 0) - return ret; - } - break; - case 16: - if (!(in_grouping_b(z, g_valid_LI, 99, 116))) - return 0; - { - int ret; - - ret = slice_del(z); /* delete, line 121 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_Step_3(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 126 */ - among_var = find_among_b(z, a_6, 9); /* substring, line 126 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 126 */ - { - int ret = r_R1(z); - - if (ret == 0) - return 0; /* call R1, line 126 */ - if (ret < 0) - return ret; - } - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_from_s(z, 4, s_30); /* <-, line 127 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int ret; - - ret = slice_from_s(z, 3, s_31); /* <-, line 128 */ - if (ret < 0) - return ret; - } - break; - case 3: - { - int ret; - - ret = slice_from_s(z, 2, s_32); /* <-, line 129 */ - if (ret < 0) - return ret; - } - break; - case 4: - { - int ret; - - ret = slice_from_s(z, 2, s_33); /* <-, line 131 */ - if (ret < 0) - return ret; - } - break; - case 5: - { - int ret; - - ret = slice_del(z); /* delete, line 133 */ - if (ret < 0) - return ret; - } - break; - case 6: - { - int ret = r_R2(z); - - if (ret == 0) - return 0; /* call R2, line 135 */ - if (ret < 0) - return ret; - } - { - int ret; - - ret = slice_del(z); /* delete, line 135 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_Step_4(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 140 */ - among_var = find_among_b(z, a_7, 18); /* substring, line 140 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 140 */ - { - int ret = r_R2(z); - - if (ret == 0) - return 0; /* call R2, line 140 */ - if (ret < 0) - return ret; - } - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 143 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int m = z->l - z->c; - - (void) m; /* or, line 144 */ - if (!(eq_s_b(z, 1, s_34))) - goto lab1; - goto lab0; - lab1: - z->c = z->l - m; - if (!(eq_s_b(z, 1, s_35))) - return 0; - } - lab0: - { - int ret; - - ret = slice_del(z); /* delete, line 144 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_Step_5(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 149 */ - among_var = find_among_b(z, a_8, 2); /* substring, line 149 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 149 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int m = z->l - z->c; - - (void) m; /* or, line 150 */ - { - int ret = r_R2(z); - - if (ret == 0) - goto lab1; /* call R2, line 150 */ - if (ret < 0) - return ret; - } - goto lab0; - lab1: - z->c = z->l - m; - { - int ret = r_R1(z); - - if (ret == 0) - return 0; /* call R1, line 150 */ - if (ret < 0) - return ret; - } - { - int m = z->l - z->c; - - (void) m; /* not, line 150 */ - { - int ret = r_shortv(z); - - if (ret == 0) - goto lab2; /* call shortv, line 150 */ - if (ret < 0) - return ret; - } - return 0; - lab2: - z->c = z->l - m; - } - } - lab0: - { - int ret; - - ret = slice_del(z); /* delete, line 150 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int ret = r_R2(z); - - if (ret == 0) - return 0; /* call R2, line 151 */ - if (ret < 0) - return ret; - } - if (!(eq_s_b(z, 1, s_36))) - return 0; - { - int ret; - - ret = slice_del(z); /* delete, line 151 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_exception2(struct SN_env * z) -{ - z->ket = z->c; /* [, line 157 */ - if (!(find_among_b(z, a_9, 8))) - return 0; /* substring, line 157 */ - z->bra = z->c; /* ], line 157 */ - if (z->c > z->lb) - return 0; /* atlimit, line 157 */ - return 1; -} - -static int -r_exception1(struct SN_env * z) -{ - int among_var; - - z->bra = z->c; /* [, line 169 */ - among_var = find_among(z, a_10, 18); /* substring, line 169 */ - if (!(among_var)) - return 0; - z->ket = z->c; /* ], line 169 */ - if (z->c < z->l) - return 0; /* atlimit, line 169 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_from_s(z, 3, s_37); /* <-, line 173 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int ret; - - ret = slice_from_s(z, 3, s_38); /* <-, line 174 */ - if (ret < 0) - return ret; - } - break; - case 3: - { - int ret; - - ret = slice_from_s(z, 3, s_39); /* <-, line 175 */ - if (ret < 0) - return ret; - } - break; - case 4: - { - int ret; - - ret = slice_from_s(z, 3, s_40); /* <-, line 176 */ - if (ret < 0) - return ret; - } - break; - case 5: - { - int ret; - - ret = slice_from_s(z, 3, s_41); /* <-, line 177 */ - if (ret < 0) - return ret; - } - break; - case 6: - { - int ret; - - ret = slice_from_s(z, 3, s_42); /* <-, line 181 */ - if (ret < 0) - return ret; - } - break; - case 7: - { - int ret; - - ret = slice_from_s(z, 5, s_43); /* <-, line 182 */ - if (ret < 0) - return ret; - } - break; - case 8: - { - int ret; - - ret = slice_from_s(z, 4, s_44); /* <-, line 183 */ - if (ret < 0) - return ret; - } - break; - case 9: - { - int ret; - - ret = slice_from_s(z, 5, s_45); /* <-, line 184 */ - if (ret < 0) - return ret; - } - break; - case 10: - { - int ret; - - ret = slice_from_s(z, 4, s_46); /* <-, line 185 */ - if (ret < 0) - return ret; - } - break; - case 11: - { - int ret; - - ret = slice_from_s(z, 5, s_47); /* <-, line 186 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_postlude(struct SN_env * z) -{ - if (!(z->B[0])) - return 0; /* Boolean test Y_found, line 202 */ - while (1) - { /* repeat, line 202 */ - int c = z->c; - - while (1) - { /* goto, line 202 */ - int c = z->c; - - z->bra = z->c; /* [, line 202 */ - if (!(eq_s(z, 1, s_48))) - goto lab1; - z->ket = z->c; /* ], line 202 */ - z->c = c; - break; - lab1: - z->c = c; - if (z->c >= z->l) - goto lab0; - z->c++; /* goto, line 202 */ - } - { - int ret; - - ret = slice_from_s(z, 1, s_49); /* <-, line 202 */ - if (ret < 0) - return ret; - } - continue; -lab0: - z->c = c; - break; - } - return 1; -} - -extern int -english_ISO_8859_1_stem(struct SN_env * z) -{ - { - int c = z->c; /* or, line 206 */ - - { - int ret = r_exception1(z); - - if (ret == 0) - goto lab1; /* call exception1, line 206 */ - if (ret < 0) - return ret; - } - goto lab0; -lab1: - z->c = c; - { - int c = z->c; /* not, line 207 */ - - { - int c = z->c + 3; - - if (0 > c || c > z->l) - goto lab3; - z->c = c; /* hop, line 207 */ - } - goto lab2; - lab3: - z->c = c; - } - goto lab0; -lab2: - z->c = c; - { - int c = z->c; /* do, line 208 */ - - { - int ret = r_prelude(z); - - if (ret == 0) - goto lab4; /* call prelude, line 208 */ - if (ret < 0) - return ret; - } - lab4: - z->c = c; - } - { - int c = z->c; /* do, line 209 */ - - { - int ret = r_mark_regions(z); - - if (ret == 0) - goto lab5; /* call mark_regions, line 209 */ - if (ret < 0) - return ret; - } - lab5: - z->c = c; - } - z->lb = z->c; - z->c = z->l; /* backwards, line 210 */ - - { - int m = z->l - z->c; - - (void) m; /* do, line 212 */ - { - int ret = r_Step_1a(z); - - if (ret == 0) - goto lab6; /* call Step_1a, line 212 */ - if (ret < 0) - return ret; - } - lab6: - z->c = z->l - m; - } - { - int m = z->l - z->c; - - (void) m; /* or, line 214 */ - { - int ret = r_exception2(z); - - if (ret == 0) - goto lab8; /* call exception2, line 214 */ - if (ret < 0) - return ret; - } - goto lab7; - lab8: - z->c = z->l - m; - { - int m = z->l - z->c; - - (void) m; /* do, line 216 */ - { - int ret = r_Step_1b(z); - - if (ret == 0) - goto lab9; /* call Step_1b, line 216 */ - if (ret < 0) - return ret; - } - lab9: - z->c = z->l - m; - } - { - int m = z->l - z->c; - - (void) m; /* do, line 217 */ - { - int ret = r_Step_1c(z); - - if (ret == 0) - goto lab10; /* call Step_1c, line 217 */ - if (ret < 0) - return ret; - } - lab10: - z->c = z->l - m; - } - { - int m = z->l - z->c; - - (void) m; /* do, line 219 */ - { - int ret = r_Step_2(z); - - if (ret == 0) - goto lab11; /* call Step_2, line 219 */ - if (ret < 0) - return ret; - } - lab11: - z->c = z->l - m; - } - { - int m = z->l - z->c; - - (void) m; /* do, line 220 */ - { - int ret = r_Step_3(z); - - if (ret == 0) - goto lab12; /* call Step_3, line 220 */ - if (ret < 0) - return ret; - } - lab12: - z->c = z->l - m; - } - { - int m = z->l - z->c; - - (void) m; /* do, line 221 */ - { - int ret = r_Step_4(z); - - if (ret == 0) - goto lab13; /* call Step_4, line 221 */ - if (ret < 0) - return ret; - } - lab13: - z->c = z->l - m; - } - { - int m = z->l - z->c; - - (void) m; /* do, line 223 */ - { - int ret = r_Step_5(z); - - if (ret == 0) - goto lab14; /* call Step_5, line 223 */ - if (ret < 0) - return ret; - } - lab14: - z->c = z->l - m; - } - } -lab7: - z->c = z->lb; - { - int c = z->c; /* do, line 226 */ - - { - int ret = r_postlude(z); - - if (ret == 0) - goto lab15; /* call postlude, line 226 */ - if (ret < 0) - return ret; - } - lab15: - z->c = c; - } - } -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); -} diff --git a/contrib/tsearch2/snowball/english_stem.h b/contrib/tsearch2/snowball/english_stem.h deleted file mode 100644 index 6918a73dd7..0000000000 --- a/contrib/tsearch2/snowball/english_stem.h +++ /dev/null @@ -1,18 +0,0 @@ -/* $PostgreSQL: pgsql/contrib/tsearch2/snowball/english_stem.h,v 1.6 2006/03/11 04:38:30 momjian Exp $ */ - -/* This file was generated automatically by the Snowball to ANSI C compiler */ - -#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); - -extern int english_ISO_8859_1_stem(struct SN_env * z); - -#ifdef __cplusplus -} - -#endif diff --git a/contrib/tsearch2/snowball/header.h b/contrib/tsearch2/snowball/header.h deleted file mode 100644 index 610f998864..0000000000 --- a/contrib/tsearch2/snowball/header.h +++ /dev/null @@ -1,56 +0,0 @@ -/* $PostgreSQL: pgsql/contrib/tsearch2/snowball/header.h,v 1.8 2006/07/10 22:06:11 momjian Exp $ */ - -#include <limits.h> - -#include "api.h" - -#define HEAD (2 * sizeof(int)) - -#define SIZE(p) ((int *)(p))[-1] -#define SET_SIZE(p, n) ((int *)(p))[-1] = n -#define CAPACITY(p) ((int *)(p))[-2] - -struct among -{ - int s_size; /* number of chars in string */ - symbol *s; /* search string */ - int substring_i; /* index to longest matching substring */ - int result; /* result of the lookup */ - int (*function) (struct SN_env *); -}; - -extern symbol *create_s(void); -extern void lose_s(symbol * p); - -extern int skip_utf8(const symbol * p, int c, int lb, int l, int n); - -extern int in_grouping_U(struct SN_env * z, unsigned char *s, int min, int max); -extern int in_grouping_b_U(struct SN_env * z, unsigned char *s, int min, int max); -extern int out_grouping_U(struct SN_env * z, unsigned char *s, int min, int max); -extern int out_grouping_b_U(struct SN_env * z, unsigned char *s, int min, int max); - -extern int in_grouping(struct SN_env * z, unsigned char *s, int min, int max); -extern int in_grouping_b(struct SN_env * z, unsigned char *s, int min, int max); -extern int out_grouping(struct SN_env * z, unsigned char *s, int min, int max); -extern int out_grouping_b(struct SN_env * z, unsigned char *s, int min, int max); - -extern int eq_s(struct SN_env * z, int s_size, symbol * s); -extern int eq_s_b(struct SN_env * z, int s_size, symbol * s); -extern int eq_v(struct SN_env * z, symbol * p); -extern int eq_v_b(struct SN_env * z, symbol * p); - -extern int find_among(struct SN_env * z, struct among * v, int v_size); -extern int find_among_b(struct SN_env * z, struct among * v, int v_size); - -extern int replace_s(struct SN_env * z, int c_bra, int c_ket, int s_size, const symbol * s, int *adjustment); -extern int slice_from_s(struct SN_env * z, int s_size, symbol * s); -extern int slice_from_v(struct SN_env * z, symbol * p); -extern int slice_del(struct SN_env * z); - -extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, symbol * s); -extern int insert_v(struct SN_env * z, int bra, int ket, symbol * p); - -extern symbol *slice_to(struct SN_env * z, symbol * p); -extern symbol *assign_to(struct SN_env * z, symbol * p); - -extern void debug(struct SN_env * z, int number, int line_count); diff --git a/contrib/tsearch2/snowball/russian_stem.c b/contrib/tsearch2/snowball/russian_stem.c deleted file mode 100644 index a9558b3ab5..0000000000 --- a/contrib/tsearch2/snowball/russian_stem.c +++ /dev/null @@ -1,928 +0,0 @@ - -/* This file was generated automatically by the Snowball to ANSI C compiler */ - -#include "header.h" - -extern int russian_KOI8_R_stem(struct SN_env * z); -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); - -extern struct SN_env *russian_KOI8_R_create_env(void); -extern void russian_KOI8_R_close_env(struct SN_env * z); - -static symbol s_0_0[3] = {0xD7, 0xDB, 0xC9}; -static symbol s_0_1[4] = {0xC9, 0xD7, 0xDB, 0xC9}; -static symbol s_0_2[4] = {0xD9, 0xD7, 0xDB, 0xC9}; -static symbol s_0_3[1] = {0xD7}; -static symbol s_0_4[2] = {0xC9, 0xD7}; -static symbol s_0_5[2] = {0xD9, 0xD7}; -static symbol s_0_6[5] = {0xD7, 0xDB, 0xC9, 0xD3, 0xD8}; -static symbol s_0_7[6] = {0xC9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8}; -static symbol s_0_8[6] = {0xD9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8}; - -static 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 symbol s_1_0[2] = {0xC0, 0xC0}; -static symbol s_1_1[2] = {0xC5, 0xC0}; -static symbol s_1_2[2] = {0xCF, 0xC0}; -static symbol s_1_3[2] = {0xD5, 0xC0}; -static symbol s_1_4[2] = {0xC5, 0xC5}; -static symbol s_1_5[2] = {0xC9, 0xC5}; -static symbol s_1_6[2] = {0xCF, 0xC5}; -static symbol s_1_7[2] = {0xD9, 0xC5}; -static symbol s_1_8[2] = {0xC9, 0xC8}; -static symbol s_1_9[2] = {0xD9, 0xC8}; -static symbol s_1_10[3] = {0xC9, 0xCD, 0xC9}; -static symbol s_1_11[3] = {0xD9, 0xCD, 0xC9}; -static symbol s_1_12[2] = {0xC5, 0xCA}; -static symbol s_1_13[2] = {0xC9, 0xCA}; -static symbol s_1_14[2] = {0xCF, 0xCA}; -static symbol s_1_15[2] = {0xD9, 0xCA}; -static symbol s_1_16[2] = {0xC5, 0xCD}; -static symbol s_1_17[2] = {0xC9, 0xCD}; -static symbol s_1_18[2] = {0xCF, 0xCD}; -static symbol s_1_19[2] = {0xD9, 0xCD}; -static symbol s_1_20[3] = {0xC5, 0xC7, 0xCF}; -static symbol s_1_21[3] = {0xCF, 0xC7, 0xCF}; -static symbol s_1_22[2] = {0xC1, 0xD1}; -static symbol s_1_23[2] = {0xD1, 0xD1}; -static symbol s_1_24[3] = {0xC5, 0xCD, 0xD5}; -static symbol s_1_25[3] = {0xCF, 0xCD, 0xD5}; - -static 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 symbol s_2_0[2] = {0xC5, 0xCD}; -static symbol s_2_1[2] = {0xCE, 0xCE}; -static symbol s_2_2[2] = {0xD7, 0xDB}; -static symbol s_2_3[3] = {0xC9, 0xD7, 0xDB}; -static symbol s_2_4[3] = {0xD9, 0xD7, 0xDB}; -static symbol s_2_5[1] = {0xDD}; -static symbol s_2_6[2] = {0xC0, 0xDD}; -static symbol s_2_7[3] = {0xD5, 0xC0, 0xDD}; - -static 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 symbol s_3_0[2] = {0xD3, 0xD1}; -static symbol s_3_1[2] = {0xD3, 0xD8}; - -static struct among a_3[2] = -{ - /* 0 */ {2, s_3_0, -1, 1, 0}, - /* 1 */ {2, s_3_1, -1, 1, 0} -}; - -static symbol s_4_0[1] = {0xC0}; -static symbol s_4_1[2] = {0xD5, 0xC0}; -static symbol s_4_2[2] = {0xCC, 0xC1}; -static symbol s_4_3[3] = {0xC9, 0xCC, 0xC1}; -static symbol s_4_4[3] = {0xD9, 0xCC, 0xC1}; -static symbol s_4_5[2] = {0xCE, 0xC1}; -static symbol s_4_6[3] = {0xC5, 0xCE, 0xC1}; -static symbol s_4_7[3] = {0xC5, 0xD4, 0xC5}; -static symbol s_4_8[3] = {0xC9, 0xD4, 0xC5}; -static symbol s_4_9[3] = {0xCA, 0xD4, 0xC5}; -static symbol s_4_10[4] = {0xC5, 0xCA, 0xD4, 0xC5}; -static symbol s_4_11[4] = {0xD5, 0xCA, 0xD4, 0xC5}; -static symbol s_4_12[2] = {0xCC, 0xC9}; -static symbol s_4_13[3] = {0xC9, 0xCC, 0xC9}; -static symbol s_4_14[3] = {0xD9, 0xCC, 0xC9}; -static symbol s_4_15[1] = {0xCA}; -static symbol s_4_16[2] = {0xC5, 0xCA}; -static symbol s_4_17[2] = {0xD5, 0xCA}; -static symbol s_4_18[1] = {0xCC}; -static symbol s_4_19[2] = {0xC9, 0xCC}; -static symbol s_4_20[2] = {0xD9, 0xCC}; -static symbol s_4_21[2] = {0xC5, 0xCD}; -static symbol s_4_22[2] = {0xC9, 0xCD}; -static symbol s_4_23[2] = {0xD9, 0xCD}; -static symbol s_4_24[1] = {0xCE}; -static symbol s_4_25[2] = {0xC5, 0xCE}; -static symbol s_4_26[2] = {0xCC, 0xCF}; -static symbol s_4_27[3] = {0xC9, 0xCC, 0xCF}; -static symbol s_4_28[3] = {0xD9, 0xCC, 0xCF}; -static symbol s_4_29[2] = {0xCE, 0xCF}; -static symbol s_4_30[3] = {0xC5, 0xCE, 0xCF}; -static symbol s_4_31[3] = {0xCE, 0xCE, 0xCF}; -static symbol s_4_32[2] = {0xC0, 0xD4}; -static symbol s_4_33[3] = {0xD5, 0xC0, 0xD4}; -static symbol s_4_34[2] = {0xC5, 0xD4}; -static symbol s_4_35[3] = {0xD5, 0xC5, 0xD4}; -static symbol s_4_36[2] = {0xC9, 0xD4}; -static symbol s_4_37[2] = {0xD1, 0xD4}; -static symbol s_4_38[2] = {0xD9, 0xD4}; -static symbol s_4_39[2] = {0xD4, 0xD8}; -static symbol s_4_40[3] = {0xC9, 0xD4, 0xD8}; -static symbol s_4_41[3] = {0xD9, 0xD4, 0xD8}; -static symbol s_4_42[3] = {0xC5, 0xDB, 0xD8}; -static symbol s_4_43[3] = {0xC9, 0xDB, 0xD8}; -static symbol s_4_44[2] = {0xCE, 0xD9}; -static symbol s_4_45[3] = {0xC5, 0xCE, 0xD9}; - -static 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 symbol s_5_0[1] = {0xC0}; -static symbol s_5_1[2] = {0xC9, 0xC0}; -static symbol s_5_2[2] = {0xD8, 0xC0}; -static symbol s_5_3[1] = {0xC1}; -static symbol s_5_4[1] = {0xC5}; -static symbol s_5_5[2] = {0xC9, 0xC5}; -static symbol s_5_6[2] = {0xD8, 0xC5}; -static symbol s_5_7[2] = {0xC1, 0xC8}; -static symbol s_5_8[2] = {0xD1, 0xC8}; -static symbol s_5_9[3] = {0xC9, 0xD1, 0xC8}; -static symbol s_5_10[1] = {0xC9}; -static symbol s_5_11[2] = {0xC5, 0xC9}; -static symbol s_5_12[2] = {0xC9, 0xC9}; -static symbol s_5_13[3] = {0xC1, 0xCD, 0xC9}; -static symbol s_5_14[3] = {0xD1, 0xCD, 0xC9}; -static symbol s_5_15[4] = {0xC9, 0xD1, 0xCD, 0xC9}; -static symbol s_5_16[1] = {0xCA}; -static symbol s_5_17[2] = {0xC5, 0xCA}; -static symbol s_5_18[3] = {0xC9, 0xC5, 0xCA}; -static symbol s_5_19[2] = {0xC9, 0xCA}; -static symbol s_5_20[2] = {0xCF, 0xCA}; -static symbol s_5_21[2] = {0xC1, 0xCD}; -static symbol s_5_22[2] = {0xC5, 0xCD}; -static symbol s_5_23[3] = {0xC9, 0xC5, 0xCD}; -static symbol s_5_24[2] = {0xCF, 0xCD}; -static symbol s_5_25[2] = {0xD1, 0xCD}; -static symbol s_5_26[3] = {0xC9, 0xD1, 0xCD}; -static symbol s_5_27[1] = {0xCF}; -static symbol s_5_28[1] = {0xD1}; -static symbol s_5_29[2] = {0xC9, 0xD1}; -static symbol s_5_30[2] = {0xD8, 0xD1}; -static symbol s_5_31[1] = {0xD5}; -static symbol s_5_32[2] = {0xC5, 0xD7}; -static symbol s_5_33[2] = {0xCF, 0xD7}; -static symbol s_5_34[1] = {0xD8}; -static symbol s_5_35[1] = {0xD9}; - -static 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 symbol s_6_0[3] = {0xCF, 0xD3, 0xD4}; -static symbol s_6_1[4] = {0xCF, 0xD3, 0xD4, 0xD8}; - -static struct among a_6[2] = -{ - /* 0 */ {3, s_6_0, -1, 1, 0}, - /* 1 */ {4, s_6_1, -1, 1, 0} -}; - -static symbol s_7_0[4] = {0xC5, 0xCA, 0xDB, 0xC5}; -static symbol s_7_1[1] = {0xCE}; -static symbol s_7_2[1] = {0xD8}; -static symbol s_7_3[3] = {0xC5, 0xCA, 0xDB}; - -static 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 unsigned char g_v[] = {35, 130, 34, 18}; - -static symbol s_0[] = {0xC1}; -static symbol s_1[] = {0xD1}; -static symbol s_2[] = {0xC1}; -static symbol s_3[] = {0xD1}; -static symbol s_4[] = {0xC1}; -static symbol s_5[] = {0xD1}; -static symbol s_6[] = {0xCE}; -static symbol s_7[] = {0xCE}; -static symbol s_8[] = {0xCE}; -static symbol s_9[] = {0xC9}; - -static int -r_mark_regions(struct SN_env * z) -{ - z->I[0] = z->l; - z->I[1] = z->l; - { - int c = z->c; /* do, line 63 */ - - while (1) - { /* gopast, line 64 */ - if (!(in_grouping(z, g_v, 192, 220))) - goto lab1; - break; - lab1: - if (z->c >= z->l) - goto lab0; - z->c++; /* gopast, line 64 */ - } - z->I[0] = z->c; /* setmark pV, line 64 */ - while (1) - { /* gopast, line 64 */ - if (!(out_grouping(z, g_v, 192, 220))) - goto lab2; - break; - lab2: - if (z->c >= z->l) - goto lab0; - z->c++; /* gopast, line 64 */ - } - while (1) - { /* gopast, line 65 */ - if (!(in_grouping(z, g_v, 192, 220))) - goto lab3; - break; - lab3: - if (z->c >= z->l) - goto lab0; - z->c++; /* gopast, line 65 */ - } - while (1) - { /* gopast, line 65 */ - if (!(out_grouping(z, g_v, 192, 220))) - goto lab4; - break; - lab4: - if (z->c >= z->l) - goto lab0; - z->c++; /* gopast, line 65 */ - } - z->I[1] = z->c; /* setmark p2, line 65 */ -lab0: - z->c = c; - } - return 1; -} - -static int -r_R2(struct SN_env * z) -{ - if (!(z->I[1] <= z->c)) - return 0; - return 1; -} - -static int -r_perfective_gerund(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 74 */ - among_var = find_among_b(z, a_0, 9); /* substring, line 74 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 74 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int m = z->l - z->c; - - (void) m; /* or, line 78 */ - if (!(eq_s_b(z, 1, s_0))) - goto lab1; - goto lab0; - lab1: - z->c = z->l - m; - if (!(eq_s_b(z, 1, s_1))) - return 0; - } - lab0: - { - int ret; - - ret = slice_del(z); /* delete, line 78 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int ret; - - ret = slice_del(z); /* delete, line 85 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_adjective(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 90 */ - among_var = find_among_b(z, a_1, 26); /* substring, line 90 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 90 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 99 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_adjectival(struct SN_env * z) -{ - int among_var; - - { - int ret = r_adjective(z); - - if (ret == 0) - return 0; /* call adjective, line 104 */ - if (ret < 0) - return ret; - } - { - int m = z->l - z->c; - - (void) m; /* 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 - m; - goto lab0; - } - z->bra = z->c; /* ], line 112 */ - switch (among_var) - { - case 0: - { - z->c = z->l - m; - goto lab0; - } - case 1: - { - int m = z->l - z->c; - - (void) m; /* or, line 117 */ - if (!(eq_s_b(z, 1, s_2))) - goto lab2; - goto lab1; - lab2: - z->c = z->l - m; - if (!(eq_s_b(z, 1, s_3))) - { - z->c = z->l - m; - goto lab0; - } - } - lab1: - { - int ret; - - ret = slice_del(z); /* delete, line 117 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int ret; - - ret = slice_del(z); /* delete, line 124 */ - if (ret < 0) - return ret; - } - break; - } -lab0: - ; - } - return 1; -} - -static int -r_reflexive(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 131 */ - among_var = find_among_b(z, a_3, 2); /* substring, line 131 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 131 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 134 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_verb(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 139 */ - among_var = find_among_b(z, a_4, 46); /* substring, line 139 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 139 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int m = z->l - z->c; - - (void) m; /* or, line 145 */ - if (!(eq_s_b(z, 1, s_4))) - goto lab1; - goto lab0; - lab1: - z->c = z->l - m; - if (!(eq_s_b(z, 1, s_5))) - return 0; - } - lab0: - { - int ret; - - ret = slice_del(z); /* delete, line 145 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int ret; - - ret = slice_del(z); /* delete, line 153 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_noun(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 162 */ - among_var = find_among_b(z, a_5, 36); /* substring, line 162 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 162 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 169 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_derivational(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 178 */ - among_var = find_among_b(z, a_6, 2); /* substring, line 178 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 178 */ - { - int ret = r_R2(z); - - if (ret == 0) - return 0; /* call R2, line 178 */ - if (ret < 0) - return ret; - } - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 181 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_tidy_up(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 186 */ - among_var = find_among_b(z, a_7, 4); /* substring, line 186 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 186 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 190 */ - if (ret < 0) - return ret; - } - z->ket = z->c; /* [, line 191 */ - if (!(eq_s_b(z, 1, s_6))) - return 0; - z->bra = z->c; /* ], line 191 */ - if (!(eq_s_b(z, 1, s_7))) - return 0; - { - int ret; - - ret = slice_del(z); /* delete, line 191 */ - if (ret < 0) - return ret; - } - break; - case 2: - if (!(eq_s_b(z, 1, s_8))) - return 0; - { - int ret; - - ret = slice_del(z); /* delete, line 194 */ - if (ret < 0) - return ret; - } - break; - case 3: - { - int ret; - - 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) -{ - { - int c = z->c; /* do, line 203 */ - - { - int ret = r_mark_regions(z); - - if (ret == 0) - goto lab0; /* call mark_regions, line 203 */ - if (ret < 0) - return ret; - } -lab0: - z->c = c; - } - z->lb = z->c; - z->c = z->l; /* backwards, line 204 */ - - { - int m3; /* setlimit, line 204 */ - int m = z->l - z->c; - - (void) m; - if (z->c < z->I[0]) - return 0; - z->c = z->I[0]; /* tomark, line 204 */ - m3 = z->lb; - z->lb = z->c; - z->c = z->l - m; - { - int m = z->l - z->c; - - (void) m; /* do, line 205 */ - { - int m = z->l - z->c; - - (void) m; /* or, line 206 */ - { - int ret = r_perfective_gerund(z); - - if (ret == 0) - goto lab3; /* call perfective_gerund, line 206 */ - if (ret < 0) - return ret; - } - goto lab2; - lab3: - z->c = z->l - m; - { - int m = z->l - z->c; - - (void) m; /* try, line 207 */ - { - int ret = r_reflexive(z); - - if (ret == 0) - { - z->c = z->l - m; - goto lab4; - } /* call reflexive, line 207 */ - if (ret < 0) - return ret; - } - lab4: - ; - } - { - int m = z->l - z->c; - - (void) m; /* or, line 208 */ - { - int ret = r_adjectival(z); - - if (ret == 0) - goto lab6; /* call adjectival, line 208 */ - if (ret < 0) - return ret; - } - goto lab5; - lab6: - z->c = z->l - m; - { - int ret = r_verb(z); - - if (ret == 0) - goto lab7; /* call verb, line 208 */ - if (ret < 0) - return ret; - } - goto lab5; - lab7: - z->c = z->l - m; - { - int ret = r_noun(z); - - if (ret == 0) - goto lab1; /* call noun, line 208 */ - if (ret < 0) - return ret; - } - } - lab5: - ; - } - lab2: - lab1: - z->c = z->l - m; - } - { - int m = z->l - z->c; - - (void) m; /* try, line 211 */ - z->ket = z->c; /* [, line 211 */ - if (!(eq_s_b(z, 1, s_9))) - { - z->c = z->l - m; - goto lab8; - } - z->bra = z->c; /* ], line 211 */ - { - int ret; - - ret = slice_del(z); /* delete, line 211 */ - if (ret < 0) - return ret; - } - lab8: - ; - } - { - int m = z->l - z->c; - - (void) m; /* do, line 214 */ - { - int ret = r_derivational(z); - - if (ret == 0) - goto lab9; /* call derivational, line 214 */ - if (ret < 0) - return ret; - } - lab9: - z->c = z->l - m; - } - { - int m = z->l - z->c; - - (void) m; /* do, line 215 */ - { - int ret = r_tidy_up(z); - - if (ret == 0) - goto lab10; /* call tidy_up, line 215 */ - if (ret < 0) - return ret; - } - lab10: - z->c = z->l - m; - } - z->lb = m3; - } - 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); -} diff --git a/contrib/tsearch2/snowball/russian_stem.h b/contrib/tsearch2/snowball/russian_stem.h deleted file mode 100644 index 217c20abdd..0000000000 --- a/contrib/tsearch2/snowball/russian_stem.h +++ /dev/null @@ -1,17 +0,0 @@ - -/* This file was generated automatically by the Snowball to ANSI C compiler */ - -#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); - -extern int russian_KOI8_R_stem(struct SN_env * z); - -#ifdef __cplusplus -} - -#endif diff --git a/contrib/tsearch2/snowball/russian_stem_UTF8.c b/contrib/tsearch2/snowball/russian_stem_UTF8.c deleted file mode 100644 index 994ff267ca..0000000000 --- a/contrib/tsearch2/snowball/russian_stem_UTF8.c +++ /dev/null @@ -1,942 +0,0 @@ - -/* This file was generated automatically by the Snowball to ANSI C compiler */ - -#include "header.h" - -extern int russian_UTF_8_stem(struct SN_env * z); -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); - -extern struct SN_env *russian_UTF_8_create_env(void); -extern void russian_UTF_8_close_env(struct SN_env * z); - -static symbol s_0_0[10] = {0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C}; -static symbol s_0_1[12] = {0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C}; -static symbol s_0_2[12] = {0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C}; -static symbol s_0_3[2] = {0xD0, 0xB2}; -static symbol s_0_4[4] = {0xD1, 0x8B, 0xD0, 0xB2}; -static symbol s_0_5[4] = {0xD0, 0xB8, 0xD0, 0xB2}; -static symbol s_0_6[6] = {0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8}; -static symbol s_0_7[8] = {0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8}; -static symbol s_0_8[8] = {0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8}; - -static 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 symbol s_1_0[6] = {0xD0, 0xB5, 0xD0, 0xBC, 0xD1, 0x83}; -static symbol s_1_1[6] = {0xD0, 0xBE, 0xD0, 0xBC, 0xD1, 0x83}; -static symbol s_1_2[4] = {0xD1, 0x8B, 0xD1, 0x85}; -static symbol s_1_3[4] = {0xD0, 0xB8, 0xD1, 0x85}; -static symbol s_1_4[4] = {0xD1, 0x83, 0xD1, 0x8E}; -static symbol s_1_5[4] = {0xD1, 0x8E, 0xD1, 0x8E}; -static symbol s_1_6[4] = {0xD0, 0xB5, 0xD1, 0x8E}; -static symbol s_1_7[4] = {0xD0, 0xBE, 0xD1, 0x8E}; -static symbol s_1_8[4] = {0xD1, 0x8F, 0xD1, 0x8F}; -static symbol s_1_9[4] = {0xD0, 0xB0, 0xD1, 0x8F}; -static symbol s_1_10[4] = {0xD1, 0x8B, 0xD0, 0xB5}; -static symbol s_1_11[4] = {0xD0, 0xB5, 0xD0, 0xB5}; -static symbol s_1_12[4] = {0xD0, 0xB8, 0xD0, 0xB5}; -static symbol s_1_13[4] = {0xD0, 0xBE, 0xD0, 0xB5}; -static symbol s_1_14[6] = {0xD1, 0x8B, 0xD0, 0xBC, 0xD0, 0xB8}; -static symbol s_1_15[6] = {0xD0, 0xB8, 0xD0, 0xBC, 0xD0, 0xB8}; -static symbol s_1_16[4] = {0xD1, 0x8B, 0xD0, 0xB9}; -static symbol s_1_17[4] = {0xD0, 0xB5, 0xD0, 0xB9}; -static symbol s_1_18[4] = {0xD0, 0xB8, 0xD0, 0xB9}; -static symbol s_1_19[4] = {0xD0, 0xBE, 0xD0, 0xB9}; -static symbol s_1_20[4] = {0xD1, 0x8B, 0xD0, 0xBC}; -static symbol s_1_21[4] = {0xD0, 0xB5, 0xD0, 0xBC}; -static symbol s_1_22[4] = {0xD0, 0xB8, 0xD0, 0xBC}; -static symbol s_1_23[4] = {0xD0, 0xBE, 0xD0, 0xBC}; -static symbol s_1_24[6] = {0xD0, 0xB5, 0xD0, 0xB3, 0xD0, 0xBE}; -static symbol s_1_25[6] = {0xD0, 0xBE, 0xD0, 0xB3, 0xD0, 0xBE}; - -static 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 symbol s_2_0[4] = {0xD0, 0xB2, 0xD1, 0x88}; -static symbol s_2_1[6] = {0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88}; -static symbol s_2_2[6] = {0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88}; -static symbol s_2_3[2] = {0xD1, 0x89}; -static symbol s_2_4[4] = {0xD1, 0x8E, 0xD1, 0x89}; -static symbol s_2_5[6] = {0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x89}; -static symbol s_2_6[4] = {0xD0, 0xB5, 0xD0, 0xBC}; -static symbol s_2_7[4] = {0xD0, 0xBD, 0xD0, 0xBD}; - -static 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 symbol s_3_0[4] = {0xD1, 0x81, 0xD1, 0x8C}; -static symbol s_3_1[4] = {0xD1, 0x81, 0xD1, 0x8F}; - -static struct among a_3[2] = -{ - /* 0 */ {4, s_3_0, -1, 1, 0}, - /* 1 */ {4, s_3_1, -1, 1, 0} -}; - -static symbol s_4_0[4] = {0xD1, 0x8B, 0xD1, 0x82}; -static symbol s_4_1[4] = {0xD1, 0x8E, 0xD1, 0x82}; -static symbol s_4_2[6] = {0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x82}; -static symbol s_4_3[4] = {0xD1, 0x8F, 0xD1, 0x82}; -static symbol s_4_4[4] = {0xD0, 0xB5, 0xD1, 0x82}; -static symbol s_4_5[6] = {0xD1, 0x83, 0xD0, 0xB5, 0xD1, 0x82}; -static symbol s_4_6[4] = {0xD0, 0xB8, 0xD1, 0x82}; -static symbol s_4_7[4] = {0xD0, 0xBD, 0xD1, 0x8B}; -static symbol s_4_8[6] = {0xD0, 0xB5, 0xD0, 0xBD, 0xD1, 0x8B}; -static symbol s_4_9[4] = {0xD1, 0x82, 0xD1, 0x8C}; -static symbol s_4_10[6] = {0xD1, 0x8B, 0xD1, 0x82, 0xD1, 0x8C}; -static symbol s_4_11[6] = {0xD0, 0xB8, 0xD1, 0x82, 0xD1, 0x8C}; -static symbol s_4_12[6] = {0xD0, 0xB5, 0xD1, 0x88, 0xD1, 0x8C}; -static symbol s_4_13[6] = {0xD0, 0xB8, 0xD1, 0x88, 0xD1, 0x8C}; -static symbol s_4_14[2] = {0xD1, 0x8E}; -static symbol s_4_15[4] = {0xD1, 0x83, 0xD1, 0x8E}; -static symbol s_4_16[4] = {0xD0, 0xBB, 0xD0, 0xB0}; -static symbol s_4_17[6] = {0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB0}; -static symbol s_4_18[6] = {0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB0}; -static symbol s_4_19[4] = {0xD0, 0xBD, 0xD0, 0xB0}; -static symbol s_4_20[6] = {0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xB0}; -static symbol s_4_21[6] = {0xD0, 0xB5, 0xD1, 0x82, 0xD0, 0xB5}; -static symbol s_4_22[6] = {0xD0, 0xB8, 0xD1, 0x82, 0xD0, 0xB5}; -static symbol s_4_23[6] = {0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5}; -static symbol s_4_24[8] = {0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5}; -static symbol s_4_25[8] = {0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5}; -static symbol s_4_26[4] = {0xD0, 0xBB, 0xD0, 0xB8}; -static symbol s_4_27[6] = {0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB8}; -static symbol s_4_28[6] = {0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB8}; -static symbol s_4_29[2] = {0xD0, 0xB9}; -static symbol s_4_30[4] = {0xD1, 0x83, 0xD0, 0xB9}; -static symbol s_4_31[4] = {0xD0, 0xB5, 0xD0, 0xB9}; -static symbol s_4_32[2] = {0xD0, 0xBB}; -static symbol s_4_33[4] = {0xD1, 0x8B, 0xD0, 0xBB}; -static symbol s_4_34[4] = {0xD0, 0xB8, 0xD0, 0xBB}; -static symbol s_4_35[4] = {0xD1, 0x8B, 0xD0, 0xBC}; -static symbol s_4_36[4] = {0xD0, 0xB5, 0xD0, 0xBC}; -static symbol s_4_37[4] = {0xD0, 0xB8, 0xD0, 0xBC}; -static symbol s_4_38[2] = {0xD0, 0xBD}; -static symbol s_4_39[4] = {0xD0, 0xB5, 0xD0, 0xBD}; -static symbol s_4_40[4] = {0xD0, 0xBB, 0xD0, 0xBE}; -static symbol s_4_41[6] = {0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xBE}; -static symbol s_4_42[6] = {0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xBE}; -static symbol s_4_43[4] = {0xD0, 0xBD, 0xD0, 0xBE}; -static symbol s_4_44[6] = {0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xBE}; -static symbol s_4_45[6] = {0xD0, 0xBD, 0xD0, 0xBD, 0xD0, 0xBE}; - -static 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 symbol s_5_0[2] = {0xD1, 0x83}; -static symbol s_5_1[4] = {0xD1, 0x8F, 0xD1, 0x85}; -static symbol s_5_2[6] = {0xD0, 0xB8, 0xD1, 0x8F, 0xD1, 0x85}; -static symbol s_5_3[4] = {0xD0, 0xB0, 0xD1, 0x85}; -static symbol s_5_4[2] = {0xD1, 0x8B}; -static symbol s_5_5[2] = {0xD1, 0x8C}; -static symbol s_5_6[2] = {0xD1, 0x8E}; -static symbol s_5_7[4] = {0xD1, 0x8C, 0xD1, 0x8E}; -static symbol s_5_8[4] = {0xD0, 0xB8, 0xD1, 0x8E}; -static symbol s_5_9[2] = {0xD1, 0x8F}; -static symbol s_5_10[4] = {0xD1, 0x8C, 0xD1, 0x8F}; -static symbol s_5_11[4] = {0xD0, 0xB8, 0xD1, 0x8F}; -static symbol s_5_12[2] = {0xD0, 0xB0}; -static symbol s_5_13[4] = {0xD0, 0xB5, 0xD0, 0xB2}; -static symbol s_5_14[4] = {0xD0, 0xBE, 0xD0, 0xB2}; -static symbol s_5_15[2] = {0xD0, 0xB5}; -static symbol s_5_16[4] = {0xD1, 0x8C, 0xD0, 0xB5}; -static symbol s_5_17[4] = {0xD0, 0xB8, 0xD0, 0xB5}; -static symbol s_5_18[2] = {0xD0, 0xB8}; -static symbol s_5_19[4] = {0xD0, 0xB5, 0xD0, 0xB8}; -static symbol s_5_20[4] = {0xD0, 0xB8, 0xD0, 0xB8}; -static symbol s_5_21[6] = {0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8}; -static symbol s_5_22[8] = {0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8}; -static symbol s_5_23[6] = {0xD0, 0xB0, 0xD0, 0xBC, 0xD0, 0xB8}; -static symbol s_5_24[2] = {0xD0, 0xB9}; -static symbol s_5_25[4] = {0xD0, 0xB5, 0xD0, 0xB9}; -static symbol s_5_26[6] = {0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xB9}; -static symbol s_5_27[4] = {0xD0, 0xB8, 0xD0, 0xB9}; -static symbol s_5_28[4] = {0xD0, 0xBE, 0xD0, 0xB9}; -static symbol s_5_29[4] = {0xD1, 0x8F, 0xD0, 0xBC}; -static symbol s_5_30[6] = {0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC}; -static symbol s_5_31[4] = {0xD0, 0xB0, 0xD0, 0xBC}; -static symbol s_5_32[4] = {0xD0, 0xB5, 0xD0, 0xBC}; -static symbol s_5_33[6] = {0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xBC}; -static symbol s_5_34[4] = {0xD0, 0xBE, 0xD0, 0xBC}; -static symbol s_5_35[2] = {0xD0, 0xBE}; - -static 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 symbol s_6_0[6] = {0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82}; -static symbol s_6_1[8] = {0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82, 0xD1, 0x8C}; - -static struct among a_6[2] = -{ - /* 0 */ {6, s_6_0, -1, 1, 0}, - /* 1 */ {8, s_6_1, -1, 1, 0} -}; - -static symbol s_7_0[6] = {0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88}; -static symbol s_7_1[2] = {0xD1, 0x8C}; -static symbol s_7_2[8] = {0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88, 0xD0, 0xB5}; -static symbol s_7_3[2] = {0xD0, 0xBD}; - -static 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 unsigned char g_v[] = {33, 65, 8, 232}; - -static symbol s_0[] = {0xD0, 0xB0}; -static symbol s_1[] = {0xD1, 0x8F}; -static symbol s_2[] = {0xD0, 0xB0}; -static symbol s_3[] = {0xD1, 0x8F}; -static symbol s_4[] = {0xD0, 0xB0}; -static symbol s_5[] = {0xD1, 0x8F}; -static symbol s_6[] = {0xD0, 0xBD}; -static symbol s_7[] = {0xD0, 0xBD}; -static symbol s_8[] = {0xD0, 0xBD}; -static symbol s_9[] = {0xD0, 0xB8}; - -static int -r_mark_regions(struct SN_env * z) -{ - z->I[0] = z->l; - z->I[1] = z->l; - { - int c = z->c; /* do, line 61 */ - - while (1) - { /* gopast, line 62 */ - if (!(in_grouping_U(z, g_v, 1072, 1103))) - goto lab1; - break; - lab1: - { - int c = skip_utf8(z->p, z->c, 0, z->l, 1); - - if (c < 0) - goto lab0; - z->c = c; /* gopast, line 62 */ - } - } - z->I[0] = z->c; /* setmark pV, line 62 */ - while (1) - { /* gopast, line 62 */ - if (!(out_grouping_U(z, g_v, 1072, 1103))) - goto lab2; - break; - lab2: - { - int c = skip_utf8(z->p, z->c, 0, z->l, 1); - - if (c < 0) - goto lab0; - z->c = c; /* gopast, line 62 */ - } - } - while (1) - { /* gopast, line 63 */ - if (!(in_grouping_U(z, g_v, 1072, 1103))) - goto lab3; - break; - lab3: - { - int c = skip_utf8(z->p, z->c, 0, z->l, 1); - - if (c < 0) - goto lab0; - z->c = c; /* gopast, line 63 */ - } - } - while (1) - { /* gopast, line 63 */ - if (!(out_grouping_U(z, g_v, 1072, 1103))) - goto lab4; - break; - lab4: - { - int c = skip_utf8(z->p, z->c, 0, z->l, 1); - - if (c < 0) - goto lab0; - z->c = c; /* gopast, line 63 */ - } - } - z->I[1] = z->c; /* setmark p2, line 63 */ -lab0: - z->c = c; - } - return 1; -} - -static int -r_R2(struct SN_env * z) -{ - if (!(z->I[1] <= z->c)) - return 0; - return 1; -} - -static int -r_perfective_gerund(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 72 */ - among_var = find_among_b(z, a_0, 9); /* substring, line 72 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 72 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int m = z->l - z->c; - - (void) m; /* or, line 76 */ - if (!(eq_s_b(z, 2, s_0))) - goto lab1; - goto lab0; - lab1: - z->c = z->l - m; - if (!(eq_s_b(z, 2, s_1))) - return 0; - } - lab0: - { - int ret; - - ret = slice_del(z); /* delete, line 76 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int ret; - - ret = slice_del(z); /* delete, line 83 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_adjective(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 88 */ - among_var = find_among_b(z, a_1, 26); /* substring, line 88 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 88 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 97 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_adjectival(struct SN_env * z) -{ - int among_var; - - { - int ret = r_adjective(z); - - if (ret == 0) - return 0; /* call adjective, line 102 */ - if (ret < 0) - return ret; - } - { - int m = z->l - z->c; - - (void) m; /* try, line 109 */ - z->ket = z->c; /* [, line 110 */ - among_var = find_among_b(z, a_2, 8); /* substring, line 110 */ - if (!(among_var)) - { - z->c = z->l - m; - goto lab0; - } - z->bra = z->c; /* ], line 110 */ - switch (among_var) - { - case 0: - { - z->c = z->l - m; - goto lab0; - } - case 1: - { - int m = z->l - z->c; - - (void) m; /* or, line 115 */ - if (!(eq_s_b(z, 2, s_2))) - goto lab2; - goto lab1; - lab2: - z->c = z->l - m; - if (!(eq_s_b(z, 2, s_3))) - { - z->c = z->l - m; - goto lab0; - } - } - lab1: - { - int ret; - - ret = slice_del(z); /* delete, line 115 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int ret; - - ret = slice_del(z); /* delete, line 122 */ - if (ret < 0) - return ret; - } - break; - } -lab0: - ; - } - return 1; -} - -static int -r_reflexive(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 129 */ - among_var = find_among_b(z, a_3, 2); /* substring, line 129 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 129 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 132 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_verb(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 137 */ - among_var = find_among_b(z, a_4, 46); /* substring, line 137 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 137 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int m = z->l - z->c; - - (void) m; /* or, line 143 */ - if (!(eq_s_b(z, 2, s_4))) - goto lab1; - goto lab0; - lab1: - z->c = z->l - m; - if (!(eq_s_b(z, 2, s_5))) - return 0; - } - lab0: - { - int ret; - - ret = slice_del(z); /* delete, line 143 */ - if (ret < 0) - return ret; - } - break; - case 2: - { - int ret; - - ret = slice_del(z); /* delete, line 151 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_noun(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 160 */ - among_var = find_among_b(z, a_5, 36); /* substring, line 160 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 160 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 167 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_derivational(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 176 */ - among_var = find_among_b(z, a_6, 2); /* substring, line 176 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 176 */ - { - int ret = r_R2(z); - - if (ret == 0) - return 0; /* call R2, line 176 */ - if (ret < 0) - return ret; - } - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 179 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -static int -r_tidy_up(struct SN_env * z) -{ - int among_var; - - z->ket = z->c; /* [, line 184 */ - among_var = find_among_b(z, a_7, 4); /* substring, line 184 */ - if (!(among_var)) - return 0; - z->bra = z->c; /* ], line 184 */ - switch (among_var) - { - case 0: - return 0; - case 1: - { - int ret; - - ret = slice_del(z); /* delete, line 188 */ - if (ret < 0) - return ret; - } - z->ket = z->c; /* [, line 189 */ - if (!(eq_s_b(z, 2, s_6))) - return 0; - z->bra = z->c; /* ], line 189 */ - if (!(eq_s_b(z, 2, s_7))) - return 0; - { - int ret; - - ret = slice_del(z); /* delete, line 189 */ - if (ret < 0) - return ret; - } - break; - case 2: - if (!(eq_s_b(z, 2, s_8))) - return 0; - { - int ret; - - ret = slice_del(z); /* delete, line 192 */ - if (ret < 0) - return ret; - } - break; - case 3: - { - int ret; - - ret = slice_del(z); /* delete, line 194 */ - if (ret < 0) - return ret; - } - break; - } - return 1; -} - -extern int -russian_UTF_8_stem(struct SN_env * z) -{ - { - int c = z->c; /* do, line 201 */ - - { - int ret = r_mark_regions(z); - - if (ret == 0) - goto lab0; /* call mark_regions, line 201 */ - if (ret < 0) - return ret; - } -lab0: - z->c = c; - } - z->lb = z->c; - z->c = z->l; /* backwards, line 202 */ - - { - int m3; /* setlimit, line 202 */ - int m = z->l - z->c; - - (void) m; - if (z->c < z->I[0]) - return 0; - z->c = z->I[0]; /* tomark, line 202 */ - m3 = z->lb; - z->lb = z->c; - z->c = z->l - m; - { - int m = z->l - z->c; - - (void) m; /* do, line 203 */ - { - int m = z->l - z->c; - - (void) m; /* or, line 204 */ - { - int ret = r_perfective_gerund(z); - - if (ret == 0) - goto lab3; /* call perfective_gerund, line 204 */ - if (ret < 0) - return ret; - } - goto lab2; - lab3: - z->c = z->l - m; - { - int m = z->l - z->c; - - (void) m; /* try, line 205 */ - { - int ret = r_reflexive(z); - - if (ret == 0) - { - z->c = z->l - m; - goto lab4; - } /* call reflexive, line 205 */ - if (ret < 0) - return ret; - } - lab4: - ; - } - { - int m = z->l - z->c; - - (void) m; /* or, line 206 */ - { - int ret = r_adjectival(z); - - if (ret == 0) - goto lab6; /* call adjectival, line 206 */ - if (ret < 0) - return ret; - } - goto lab5; - lab6: - z->c = z->l - m; - { - int ret = r_verb(z); - - if (ret == 0) - goto lab7; /* call verb, line 206 */ - if (ret < 0) - return ret; - } - goto lab5; - lab7: - z->c = z->l - m; - { - int ret = r_noun(z); - - if (ret == 0) - goto lab1; /* call noun, line 206 */ - if (ret < 0) - return ret; - } - } - lab5: - ; - } - lab2: - lab1: - z->c = z->l - m; - } - { - int m = z->l - z->c; - - (void) m; /* try, line 209 */ - z->ket = z->c; /* [, line 209 */ - if (!(eq_s_b(z, 2, s_9))) - { - z->c = z->l - m; - goto lab8; - } - z->bra = z->c; /* ], line 209 */ - { - int ret; - - ret = slice_del(z); /* delete, line 209 */ - if (ret < 0) - return ret; - } - lab8: - ; - } - { - int m = z->l - z->c; - - (void) m; /* do, line 212 */ - { - int ret = r_derivational(z); - - if (ret == 0) - goto lab9; /* call derivational, line 212 */ - if (ret < 0) - return ret; - } - lab9: - z->c = z->l - m; - } - { - int m = z->l - z->c; - - (void) m; /* do, line 213 */ - { - int ret = r_tidy_up(z); - - if (ret == 0) - goto lab10; /* call tidy_up, line 213 */ - if (ret < 0) - return ret; - } - lab10: - z->c = z->l - m; - } - z->lb = m3; - } - 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); -} diff --git a/contrib/tsearch2/snowball/russian_stem_UTF8.h b/contrib/tsearch2/snowball/russian_stem_UTF8.h deleted file mode 100644 index 0beb0b9719..0000000000 --- a/contrib/tsearch2/snowball/russian_stem_UTF8.h +++ /dev/null @@ -1,17 +0,0 @@ - -/* This file was generated automatically by the Snowball to ANSI C compiler */ - -#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); - - extern int russian_UTF_8_stem(struct SN_env * z); - -#ifdef __cplusplus -} - -#endif diff --git a/contrib/tsearch2/snowball/utilities.c b/contrib/tsearch2/snowball/utilities.c deleted file mode 100644 index f06e5bb7a1..0000000000 --- a/contrib/tsearch2/snowball/utilities.c +++ /dev/null @@ -1,656 +0,0 @@ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "header.h" - -#define unless(C) if(!(C)) - -#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, CREATE_SIZE); - return p; -} - -extern void -lose_s(symbol * p) -{ - if (p == NULL) - return; - free((char *) p - HEAD); -} - -/* - new_p = X_skip_utf8(p, c, lb, l, n); skips n characters forwards from p + c - if n +ve, or n characters backwards from p +c - 1 if n -ve. new_p is the new - position, or 0 on failure. - - -- 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; - - if (c >= l) - return 0; - b0 = p[c++]; - if (b0 < 0xC0 || c == l) - { /* 1100 0000 */ - *slot = b0; - return 1; - } - b1 = p[c++]; - if (b0 < 0xE0 || c == l) - { /* 1110 0000 */ - *slot = (b0 & 0x1F) << 6 | (b1 & 0x3F); - return 2; - } - *slot = (b0 & 0xF) << 12 | (b1 & 0x3F) << 6 | (*p & 0x3F); - return 3; -} - -static int -get_b_utf8(const symbol * p, int c, int lb, int *slot) -{ - int b0, - b1; - - if (c <= lb) - return 0; - b0 = p[--c]; - if (b0 < 0x80 || c == lb) - { /* 1000 0000 */ - *slot = b0; - return 1; - } - b1 = p[--c]; - if (b1 >= 0xC0 || c == lb) - { /* 1100 0000 */ - *slot = (b1 & 0x1F) << 6 | (b0 & 0x3F); - return 2; - } - *slot = (*p & 0xF) << 12 | (b1 & 0x3F) << 6 | (b0 & 0x3F); - return 3; -} - -extern int -in_grouping_U(struct SN_env * z, unsigned char *s, int min, int max) -{ - int ch; - int w = get_utf8(z->p, z->c, z->l, &ch); - - unless(w) return 0; - if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) - return 0; - z->c += w; - return 1; -} - -extern int -in_grouping_b_U(struct SN_env * z, unsigned char *s, int min, int max) -{ - int ch; - int w = get_b_utf8(z->p, z->c, z->lb, &ch); - - unless(w) return 0; - if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) - return 0; - z->c -= w; - return 1; -} - -extern int -out_grouping_U(struct SN_env * z, unsigned char *s, int min, int max) -{ - int ch; - int w = get_utf8(z->p, z->c, z->l, &ch); - - unless(w) return 0; - unless(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0; - z->c += w; - return 1; -} - -extern int -out_grouping_b_U(struct SN_env * z, unsigned char *s, int min, int max) -{ - int ch; - int w = get_b_utf8(z->p, z->c, z->lb, &ch); - - unless(w) return 0; - unless(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0; - z->c -= w; - return 1; -} - -/* Code for character groupings: non-utf8 cases */ - -extern int -in_grouping(struct SN_env * z, unsigned char *s, int min, int max) -{ - int ch; - - if (z->c >= z->l) - return 0; - ch = z->p[z->c]; - if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) - return 0; - z->c++; - return 1; -} - -extern int -in_grouping_b(struct SN_env * z, unsigned char *s, int min, int max) -{ - int ch; - - if (z->c <= z->lb) - return 0; - ch = z->p[z->c - 1]; - if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) - return 0; - z->c--; - return 1; -} - -extern int -out_grouping(struct SN_env * z, unsigned char *s, int min, int max) -{ - int ch; - - if (z->c >= z->l) - return 0; - ch = z->p[z->c]; - unless(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0; - z->c++; - return 1; -} - -extern int -out_grouping_b(struct SN_env * z, unsigned char *s, int min, int max) -{ - int ch; - - if (z->c <= z->lb) - return 0; - ch = z->p[z->c - 1]; - unless(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0; - z->c--; - return 1; -} - -extern int -eq_s(struct SN_env * z, int s_size, 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, 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, symbol * p) -{ - return eq_s(z, SIZE(p), p); -} - -extern int -eq_v_b(struct SN_env * z, symbol * p) -{ - return eq_s_b(z, SIZE(p), p); -} - -extern int -find_among(struct SN_env * z, 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; - - 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 i; - - for (i = common; i < w->s_size; i++) - { - if (c + common == l) - { - diff = -1; - break; - } - diff = q[common] - w->s[i]; - 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, 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; - - 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 i; - - for (i = w->s_size - 1 - common; i >= 0; i--) - { - if (c - common == lb) - { - diff = -1; - break; - } - diff = q[-common] - w->s[i]; - 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; - } - unless(s_size == 0) 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, 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, 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, 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, symbol * p) -{ - int adjustment; - - if (replace_s(z, bra, ket, SIZE(p), p, &adjustment)) - return -1; - if (bra <= z->bra) - z->bra += adjustment; - if (bra <= z->ket) - z->ket += adjustment; - return 0; -} - -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; -} - -#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 |