diff --git a/doc/src/sgml/textsearch.sgml b/doc/src/sgml/textsearch.sgml index 8075ea94e7..61280b03fc 100644 --- a/doc/src/sgml/textsearch.sgml +++ b/doc/src/sgml/textsearch.sgml @@ -3803,6 +3803,7 @@ Parser: "pg_catalog.default" pg_catalog | german_stem | snowball stemmer for german language pg_catalog | hungarian_stem | snowball stemmer for hungarian language pg_catalog | italian_stem | snowball stemmer for italian language + pg_catalog | nepali_stem | snowball stemmer for nepali language pg_catalog | norwegian_stem | snowball stemmer for norwegian language pg_catalog | portuguese_stem | snowball stemmer for portuguese language pg_catalog | romanian_stem | snowball stemmer for romanian language diff --git a/src/backend/snowball/Makefile b/src/backend/snowball/Makefile index 50cbace41d..c29f4184f2 100644 --- a/src/backend/snowball/Makefile +++ b/src/backend/snowball/Makefile @@ -40,6 +40,7 @@ OBJS= $(WIN32RES) dict_snowball.o api.o utilities.o \ stem_UTF_8_german.o \ stem_UTF_8_hungarian.o \ stem_UTF_8_italian.o \ + stem_UTF_8_nepali.o \ stem_UTF_8_norwegian.o \ stem_UTF_8_porter.o \ stem_UTF_8_portuguese.o \ @@ -62,6 +63,7 @@ LANGUAGES= \ german german \ hungarian hungarian \ italian italian \ + nepali nepali \ norwegian norwegian \ portuguese portuguese \ romanian romanian \ diff --git a/src/backend/snowball/dict_snowball.c b/src/backend/snowball/dict_snowball.c index 78c9f73ef0..d96c849118 100644 --- a/src/backend/snowball/dict_snowball.c +++ b/src/backend/snowball/dict_snowball.c @@ -49,6 +49,7 @@ #include "snowball/libstemmer/stem_UTF_8_german.h" #include "snowball/libstemmer/stem_UTF_8_hungarian.h" #include "snowball/libstemmer/stem_UTF_8_italian.h" +#include "snowball/libstemmer/stem_UTF_8_nepali.h" #include "snowball/libstemmer/stem_UTF_8_norwegian.h" #include "snowball/libstemmer/stem_UTF_8_porter.h" #include "snowball/libstemmer/stem_UTF_8_portuguese.h" @@ -102,6 +103,7 @@ static const stemmer_module stemmer_modules[] = {"german", PG_UTF8, german_UTF_8_create_env, german_UTF_8_close_env, german_UTF_8_stem}, {"hungarian", PG_UTF8, hungarian_UTF_8_create_env, hungarian_UTF_8_close_env, hungarian_UTF_8_stem}, {"italian", PG_UTF8, italian_UTF_8_create_env, italian_UTF_8_close_env, italian_UTF_8_stem}, + {"nepali", PG_UTF8, nepali_UTF_8_create_env, nepali_UTF_8_close_env, nepali_UTF_8_stem}, {"norwegian", PG_UTF8, norwegian_UTF_8_create_env, norwegian_UTF_8_close_env, norwegian_UTF_8_stem}, {"porter", PG_UTF8, porter_UTF_8_create_env, porter_UTF_8_close_env, porter_UTF_8_stem}, {"portuguese", PG_UTF8, portuguese_UTF_8_create_env, portuguese_UTF_8_close_env, portuguese_UTF_8_stem}, diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c b/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c new file mode 100644 index 0000000000..d1c1be76f3 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c @@ -0,0 +1,424 @@ +/* This file was generated automatically by the Snowball to ISO C compiler */ +/* http://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int nepali_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_remove_category_3(struct SN_env * z); +static int r_remove_category_2(struct SN_env * z); +static int r_check_category_2(struct SN_env * z); +static int r_remove_category_1(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * nepali_UTF_8_create_env(void); +extern void nepali_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 }; +static const symbol s_0_1[9] = { 0xE0, 0xA4, 0xB2, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x87 }; +static const symbol s_0_2[6] = { 0xE0, 0xA4, 0xB2, 0xE0, 0xA5, 0x87 }; +static const symbol s_0_3[9] = { 0xE0, 0xA4, 0xB2, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x88 }; +static const symbol s_0_4[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x88 }; +static const symbol s_0_5[12] = { 0xE0, 0xA4, 0xB8, 0xE0, 0xA4, 0x81, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x88 }; +static const symbol s_0_6[6] = { 0xE0, 0xA4, 0xAE, 0xE0, 0xA5, 0x88 }; +static const symbol s_0_7[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B }; +static const symbol s_0_8[9] = { 0xE0, 0xA4, 0xB8, 0xE0, 0xA4, 0x81, 0xE0, 0xA4, 0x97 }; +static const symbol s_0_9[9] = { 0xE0, 0xA4, 0xB8, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97 }; +static const symbol s_0_10[18] = { 0xE0, 0xA4, 0xAE, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xB0, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xA4 }; +static const symbol s_0_11[6] = { 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xA4 }; +static const symbol s_0_12[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE }; +static const symbol s_0_13[6] = { 0xE0, 0xA4, 0xAE, 0xE0, 0xA4, 0xBE }; +static const symbol s_0_14[18] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xB5, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBE }; +static const symbol s_0_15[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBF }; +static const symbol s_0_16[9] = { 0xE0, 0xA4, 0xAA, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xBF }; + +static const struct among a_0[17] = +{ +/* 0 */ { 6, s_0_0, -1, 2, 0}, +/* 1 */ { 9, s_0_1, -1, 1, 0}, +/* 2 */ { 6, s_0_2, -1, 1, 0}, +/* 3 */ { 9, s_0_3, -1, 1, 0}, +/* 4 */ { 6, s_0_4, -1, 2, 0}, +/* 5 */ { 12, s_0_5, -1, 1, 0}, +/* 6 */ { 6, s_0_6, -1, 1, 0}, +/* 7 */ { 6, s_0_7, -1, 2, 0}, +/* 8 */ { 9, s_0_8, -1, 1, 0}, +/* 9 */ { 9, s_0_9, -1, 1, 0}, +/* 10 */ { 18, s_0_10, -1, 1, 0}, +/* 11 */ { 6, s_0_11, -1, 1, 0}, +/* 12 */ { 6, s_0_12, -1, 2, 0}, +/* 13 */ { 6, s_0_13, -1, 1, 0}, +/* 14 */ { 18, s_0_14, -1, 1, 0}, +/* 15 */ { 6, s_0_15, -1, 2, 0}, +/* 16 */ { 9, s_0_16, -1, 1, 0} +}; + +static const symbol s_1_0[3] = { 0xE0, 0xA4, 0x81 }; +static const symbol s_1_1[3] = { 0xE0, 0xA4, 0x82 }; +static const symbol s_1_2[3] = { 0xE0, 0xA5, 0x88 }; + +static const struct among a_1[3] = +{ +/* 0 */ { 3, s_1_0, -1, -1, 0}, +/* 1 */ { 3, s_1_1, -1, -1, 0}, +/* 2 */ { 3, s_1_2, -1, -1, 0} +}; + +static const symbol s_2_0[3] = { 0xE0, 0xA4, 0x81 }; +static const symbol s_2_1[3] = { 0xE0, 0xA4, 0x82 }; +static const symbol s_2_2[3] = { 0xE0, 0xA5, 0x88 }; + +static const struct among a_2[3] = +{ +/* 0 */ { 3, s_2_0, -1, 1, 0}, +/* 1 */ { 3, s_2_1, -1, 1, 0}, +/* 2 */ { 3, s_2_2, -1, 2, 0} +}; + +static const symbol s_3_0[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 }; +static const symbol s_3_1[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 }; +static const symbol s_3_2[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 }; +static const symbol s_3_3[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 }; +static const symbol s_3_4[12] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x96, 0xE0, 0xA5, 0x80 }; +static const symbol s_3_5[6] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x80 }; +static const symbol s_3_6[6] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x80 }; +static const symbol s_3_7[6] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x81 }; +static const symbol s_3_8[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x81 }; +static const symbol s_3_9[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x81 }; +static const symbol s_3_10[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x81 }; +static const symbol s_3_11[6] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x81 }; +static const symbol s_3_12[9] = { 0xE0, 0xA4, 0xB9, 0xE0, 0xA4, 0xB0, 0xE0, 0xA5, 0x81 }; +static const symbol s_3_13[9] = { 0xE0, 0xA4, 0xB9, 0xE0, 0xA4, 0xB0, 0xE0, 0xA5, 0x82 }; +static const symbol s_3_14[6] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x87 }; +static const symbol s_3_15[6] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x87 }; +static const symbol s_3_16[6] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87 }; +static const symbol s_3_17[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x88 }; +static const symbol s_3_18[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x88 }; +static const symbol s_3_19[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x88 }; +static const symbol s_3_20[6] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x88 }; +static const symbol s_3_21[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x88 }; +static const symbol s_3_22[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x88 }; +static const symbol s_3_23[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_24[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_25[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_26[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_27[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_28[6] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_29[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_30[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_31[6] = { 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_32[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_33[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_34[9] = { 0xE0, 0xA4, 0xAD, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_35[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_36[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_37[12] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B }; +static const symbol s_3_38[6] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C }; +static const symbol s_3_39[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C }; +static const symbol s_3_40[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C }; +static const symbol s_3_41[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C }; +static const symbol s_3_42[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C }; +static const symbol s_3_43[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C }; +static const symbol s_3_44[6] = { 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8C }; +static const symbol s_3_45[12] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8C }; +static const symbol s_3_46[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8C }; +static const symbol s_3_47[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8C }; +static const symbol s_3_48[9] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_49[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_50[12] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_51[15] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_52[12] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_53[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_54[12] = { 0xE0, 0xA4, 0xB2, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_55[12] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_56[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_57[9] = { 0xE0, 0xA4, 0xAA, 0xE0, 0xA4, 0xB0, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_58[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_59[15] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_60[12] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_61[12] = { 0xE0, 0xA4, 0xB9, 0xE0, 0xA5, 0x8B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_62[9] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_63[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_64[12] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_65[15] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_66[12] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_67[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_68[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_69[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D }; +static const symbol s_3_70[9] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x8F }; +static const symbol s_3_71[3] = { 0xE0, 0xA4, 0x9B }; +static const symbol s_3_72[6] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x9B }; +static const symbol s_3_73[6] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B }; +static const symbol s_3_74[9] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B }; +static const symbol s_3_75[15] = { 0xE0, 0xA4, 0xB9, 0xE0, 0xA5, 0x81, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B }; +static const symbol s_3_76[15] = { 0xE0, 0xA4, 0xB9, 0xE0, 0xA5, 0x81, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0x9B }; +static const symbol s_3_77[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0x9B }; +static const symbol s_3_78[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0x9B }; +static const symbol s_3_79[6] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x9B }; +static const symbol s_3_80[6] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x9B }; +static const symbol s_3_81[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE }; +static const symbol s_3_82[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE }; +static const symbol s_3_83[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE }; +static const symbol s_3_84[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE }; +static const symbol s_3_85[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE }; +static const symbol s_3_86[6] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA4, 0xBE }; +static const symbol s_3_87[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xA6, 0xE0, 0xA4, 0xBE }; +static const symbol s_3_88[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA6, 0xE0, 0xA4, 0xBE }; +static const symbol s_3_89[12] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x96, 0xE0, 0xA4, 0xBF }; +static const symbol s_3_90[12] = { 0xE0, 0xA4, 0xAE, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF }; + +static const struct among a_3[91] = +{ +/* 0 */ { 9, s_3_0, -1, 1, 0}, +/* 1 */ { 9, s_3_1, -1, 1, 0}, +/* 2 */ { 12, s_3_2, 1, 1, 0}, +/* 3 */ { 12, s_3_3, 1, 1, 0}, +/* 4 */ { 12, s_3_4, -1, 1, 0}, +/* 5 */ { 6, s_3_5, -1, 1, 0}, +/* 6 */ { 6, s_3_6, -1, 1, 0}, +/* 7 */ { 6, s_3_7, -1, 1, 0}, +/* 8 */ { 9, s_3_8, 7, 1, 0}, +/* 9 */ { 12, s_3_9, 8, 1, 0}, +/* 10 */ { 9, s_3_10, 7, 1, 0}, +/* 11 */ { 6, s_3_11, -1, 1, 0}, +/* 12 */ { 9, s_3_12, -1, 1, 0}, +/* 13 */ { 9, s_3_13, -1, 1, 0}, +/* 14 */ { 6, s_3_14, -1, 1, 0}, +/* 15 */ { 6, s_3_15, -1, 1, 0}, +/* 16 */ { 6, s_3_16, -1, 1, 0}, +/* 17 */ { 9, s_3_17, -1, 1, 0}, +/* 18 */ { 12, s_3_18, 17, 1, 0}, +/* 19 */ { 9, s_3_19, -1, 1, 0}, +/* 20 */ { 6, s_3_20, -1, 1, 0}, +/* 21 */ { 9, s_3_21, 20, 1, 0}, +/* 22 */ { 9, s_3_22, 20, 1, 0}, +/* 23 */ { 9, s_3_23, -1, 1, 0}, +/* 24 */ { 12, s_3_24, 23, 1, 0}, +/* 25 */ { 9, s_3_25, -1, 1, 0}, +/* 26 */ { 12, s_3_26, 25, 1, 0}, +/* 27 */ { 12, s_3_27, 25, 1, 0}, +/* 28 */ { 6, s_3_28, -1, 1, 0}, +/* 29 */ { 9, s_3_29, 28, 1, 0}, +/* 30 */ { 9, s_3_30, 28, 1, 0}, +/* 31 */ { 6, s_3_31, -1, 1, 0}, +/* 32 */ { 9, s_3_32, 31, 1, 0}, +/* 33 */ { 12, s_3_33, 31, 1, 0}, +/* 34 */ { 9, s_3_34, 31, 1, 0}, +/* 35 */ { 9, s_3_35, 31, 1, 0}, +/* 36 */ { 12, s_3_36, 35, 1, 0}, +/* 37 */ { 12, s_3_37, 35, 1, 0}, +/* 38 */ { 6, s_3_38, -1, 1, 0}, +/* 39 */ { 9, s_3_39, 38, 1, 0}, +/* 40 */ { 9, s_3_40, 38, 1, 0}, +/* 41 */ { 12, s_3_41, 40, 1, 0}, +/* 42 */ { 9, s_3_42, 38, 1, 0}, +/* 43 */ { 9, s_3_43, 38, 1, 0}, +/* 44 */ { 6, s_3_44, -1, 1, 0}, +/* 45 */ { 12, s_3_45, 44, 1, 0}, +/* 46 */ { 12, s_3_46, 44, 1, 0}, +/* 47 */ { 12, s_3_47, 44, 1, 0}, +/* 48 */ { 9, s_3_48, -1, 1, 0}, +/* 49 */ { 12, s_3_49, 48, 1, 0}, +/* 50 */ { 12, s_3_50, 48, 1, 0}, +/* 51 */ { 15, s_3_51, 50, 1, 0}, +/* 52 */ { 12, s_3_52, 48, 1, 0}, +/* 53 */ { 12, s_3_53, 48, 1, 0}, +/* 54 */ { 12, s_3_54, -1, 1, 0}, +/* 55 */ { 12, s_3_55, -1, 1, 0}, +/* 56 */ { 12, s_3_56, -1, 1, 0}, +/* 57 */ { 9, s_3_57, -1, 1, 0}, +/* 58 */ { 9, s_3_58, -1, 1, 0}, +/* 59 */ { 15, s_3_59, 58, 1, 0}, +/* 60 */ { 12, s_3_60, -1, 1, 0}, +/* 61 */ { 12, s_3_61, -1, 1, 0}, +/* 62 */ { 9, s_3_62, -1, 1, 0}, +/* 63 */ { 12, s_3_63, 62, 1, 0}, +/* 64 */ { 12, s_3_64, 62, 1, 0}, +/* 65 */ { 15, s_3_65, 64, 1, 0}, +/* 66 */ { 12, s_3_66, 62, 1, 0}, +/* 67 */ { 12, s_3_67, 62, 1, 0}, +/* 68 */ { 9, s_3_68, -1, 1, 0}, +/* 69 */ { 12, s_3_69, 68, 1, 0}, +/* 70 */ { 9, s_3_70, -1, 1, 0}, +/* 71 */ { 3, s_3_71, -1, 1, 0}, +/* 72 */ { 6, s_3_72, 71, 1, 0}, +/* 73 */ { 6, s_3_73, 71, 1, 0}, +/* 74 */ { 9, s_3_74, 73, 1, 0}, +/* 75 */ { 15, s_3_75, 74, 1, 0}, +/* 76 */ { 15, s_3_76, 71, 1, 0}, +/* 77 */ { 12, s_3_77, 71, 1, 0}, +/* 78 */ { 12, s_3_78, 71, 1, 0}, +/* 79 */ { 6, s_3_79, 71, 1, 0}, +/* 80 */ { 6, s_3_80, 71, 1, 0}, +/* 81 */ { 9, s_3_81, -1, 1, 0}, +/* 82 */ { 12, s_3_82, 81, 1, 0}, +/* 83 */ { 9, s_3_83, -1, 1, 0}, +/* 84 */ { 12, s_3_84, 83, 1, 0}, +/* 85 */ { 12, s_3_85, 83, 1, 0}, +/* 86 */ { 6, s_3_86, -1, 1, 0}, +/* 87 */ { 9, s_3_87, 86, 1, 0}, +/* 88 */ { 9, s_3_88, 86, 1, 0}, +/* 89 */ { 12, s_3_89, -1, 1, 0}, +/* 90 */ { 12, s_3_90, -1, 1, 0} +}; + +static const symbol s_0[] = { 0xE0, 0xA4, 0x8F }; +static const symbol s_1[] = { 0xE0, 0xA5, 0x87 }; +static const symbol s_2[] = { 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8C }; +static const symbol s_3[] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C }; +static const symbol s_4[] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8C }; +static const symbol s_5[] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x87 }; +static const symbol s_6[] = { 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xB0 }; + +static int r_remove_category_1(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 54 */ + among_var = find_among_b(z, a_0, 17); /* substring, line 54 */ + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 54 */ + switch (among_var) { /* among, line 54 */ + case 1: + { int ret = slice_del(z); /* delete, line 58 */ + if (ret < 0) return ret; + } + break; + case 2: + { int m1 = z->l - z->c; (void)m1; /* or, line 59 */ + { int m2 = z->l - z->c; (void)m2; /* or, line 59 */ + if (!(eq_s_b(z, 3, s_0))) goto lab3; /* literal, line 59 */ + goto lab2; + lab3: + z->c = z->l - m2; + if (!(eq_s_b(z, 3, s_1))) goto lab1; /* literal, line 59 */ + } + lab2: + goto lab0; + lab1: + z->c = z->l - m1; + { int ret = slice_del(z); /* delete, line 59 */ + if (ret < 0) return ret; + } + } + lab0: + break; + } + return 1; +} + +static int r_check_category_2(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 64 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 64 */ + if (!(find_among_b(z, a_1, 3))) return 0; + z->bra = z->c; /* ], line 64 */ + return 1; +} + +static int r_remove_category_2(struct SN_env * z) { /* backwardmode */ + int among_var; + z->ket = z->c; /* [, line 70 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 70 */ + among_var = find_among_b(z, a_2, 3); + if (!(among_var)) return 0; + z->bra = z->c; /* ], line 70 */ + switch (among_var) { /* among, line 70 */ + case 1: + { int m1 = z->l - z->c; (void)m1; /* or, line 71 */ + if (!(eq_s_b(z, 6, s_2))) goto lab1; /* literal, line 71 */ + goto lab0; + lab1: + z->c = z->l - m1; + if (!(eq_s_b(z, 6, s_3))) goto lab2; /* literal, line 71 */ + goto lab0; + lab2: + z->c = z->l - m1; + if (!(eq_s_b(z, 6, s_4))) goto lab3; /* literal, line 71 */ + goto lab0; + lab3: + z->c = z->l - m1; + if (!(eq_s_b(z, 6, s_5))) return 0; /* literal, line 71 */ + } + lab0: + { int ret = slice_del(z); /* delete, line 71 */ + if (ret < 0) return ret; + } + break; + case 2: + if (!(eq_s_b(z, 9, s_6))) return 0; /* literal, line 72 */ + { int ret = slice_del(z); /* delete, line 72 */ + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_remove_category_3(struct SN_env * z) { /* backwardmode */ + z->ket = z->c; /* [, line 77 */ + if (!(find_among_b(z, a_3, 91))) return 0; /* substring, line 77 */ + z->bra = z->c; /* ], line 77 */ + { int ret = slice_del(z); /* delete, line 79 */ + if (ret < 0) return ret; + } + return 1; +} + +extern int nepali_UTF_8_stem(struct SN_env * z) { /* forwardmode */ + z->lb = z->c; z->c = z->l; /* backwards, line 86 */ + + { int m1 = z->l - z->c; (void)m1; /* do, line 87 */ + { int ret = r_remove_category_1(z); /* call remove_category_1, line 87 */ + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + lab0: + z->c = z->l - m1; + } + { int m2 = z->l - z->c; (void)m2; /* do, line 88 */ + while(1) { /* repeat, line 89 */ + int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; /* do, line 89 */ + { int m5 = z->l - z->c; (void)m5; /* and, line 89 */ + { int ret = r_check_category_2(z); /* call check_category_2, line 89 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + z->c = z->l - m5; + { int ret = r_remove_category_2(z); /* call remove_category_2, line 89 */ + if (ret == 0) goto lab3; + if (ret < 0) return ret; + } + } + lab3: + z->c = z->l - m4; + } + { int ret = r_remove_category_3(z); /* call remove_category_3, line 89 */ + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + continue; + lab2: + z->c = z->l - m3; + break; + } + z->c = z->l - m2; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * nepali_UTF_8_create_env(void) { return SN_create_env(0, 0, 0); } + +extern void nepali_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/stopwords/nepali.stop b/src/backend/snowball/stopwords/nepali.stop new file mode 100644 index 0000000000..42e24a5959 --- /dev/null +++ b/src/backend/snowball/stopwords/nepali.stop @@ -0,0 +1,304 @@ +अक्सर +अगाडि +अगाडी +अझै +अनुसार +अन्तर्गत +अन्य +अन्यथा +अब +अरु +अरू +अर्का +अर्की +अर्को +अर्थात +अर्थात् +अर्ब +अलग +अलिकति +असार +आइतवार +आए +आज +आठ +आत्म +आदि +आफू +आफ्नै +आफ्नो +आयो +आश्विन +उदाहरण +उन +उप +उही +एउटै +एक +एकदम +एकै +ओठ +औं +कति +कतै +कत्रा +कत्री +कत्रो +करोड +कस +कसरी +कसै +कस्ता +कस्ती +कस्तो +कहिल्यै +कहीं +का +कार्तिक +कि +किन +किनभने +कुन +कुनै +कुरा +कृपया +के +केहि +केही +को +कोही +क्रमशः +खर्ब +गयौ +चाँडै +चार +चाले +चाहनुहुन्छ +चाहन्छु +चाहिए +चैत +चौथो +छ +छन् +छु +छू +छैन +छौँ +छौं +जताततै +जति +जत्रा +जत्री +जत्रो +जब +जबकि +जस +जस्ता +जस्ती +जस्तो +जस्तोसुकै +जहाँ +जान +जाहिर +जुन +जे +जेठ +जो +जोसुकै +ठीक +त +तत्काल +तथा +तदनुसार +तपाई +तपाईं +तर +तल +तापनि +तापनी +तिन +तिनी +तिमी +तिर +ती +तीन +तुरुन्तै +तेस्कारण +तेस्रो +त्यसकारण +त्यसपछि +त्यसमा +त्यसैले +त्यहाँ +त्यो +त्सपछि +त्सैले +थिए +थिएन +थिएनन् +थियो +थोरै +दस +दिए +दिनुभएको +दिनुहुन्छ +दुई +देख +देखि +देखिन्छ +देखियो +देखे +देखेको +देखेर +देख्न +दोश्रो +दोस्रो +धेरै +न +नजिकै +नत्र +नयाँ +नि +निम्ति +निम्न +निम्नानुसार +निर्दिष्ट +नै +नौ +पक्का +पक्कै +पछि +पछिल्लो +पटक +पनि +पर्छ +पर्थ्यो +पर्याप्त +पर्सी +पहिले +पहिलो +पहिल्यै +पाँच +पाँचौं +पूर्व +पौष +प्रति +प्रतेक +प्रत्येक +प्रथम +प्लस +फागुन +फेरि +फेरी +बने +बन्द +बन्न +बरु +बाटो +बारे +बाहिर +बाहेक +बिरुद्ध +बिशेष +बिहिवार +बीच +बुधवार +भए +भदौ +भन् +भर +भित्र +भित्री +भोलि +भोली +म +मंसिर +मङ्गलवार +महिना +मा +माघ +मात्र +माथि +मुख्य +मेरो +यति +यत्ति +यत्रा +यत्री +यत्रो +यथोचित +यदि +यद्यपि +यस +यसरी +यसो +यस्ता +यस्ती +यस्तो +यहाँ +या +यिन +यिनी +यी +यो +र +रही +रहेका +रहेको +राखे +राख्छ +राम्रो +रूप +लगभग +लाई +लाख +लागि +ले +वरिपरि +वरीपरी +वर्ष +वास्तवमा +वाहेक +विरुद्ध +विशेष +वैशाख +शनिवार +शायद +शुक्रवार +सँग +सँगै +संग +संगै +सक्छ +सट्टा +सधै +सधैं +सबै +समय +सम्भव +सम्म +सय +सही +साँच्चै +साउन +सात +साथ +साथै +सायद +सारा +सुन्ना +सो +सोध्न +सोमवार +सोही +स्पष्ट +हजार +हप्ता +हरे +हरेक +हामी +हाम्रो +हिजो +हुन्छ +होला +होस् diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index ae22e7d9fb..3e8eafceb2 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -735,6 +735,8 @@ static const struct tsearch_config_match tsearch_config_languages[] = {"hungarian", "Hungarian"}, {"italian", "it"}, {"italian", "Italian"}, + {"nepali", "ne"}, + {"nepali", "Nepali"}, {"norwegian", "no"}, {"norwegian", "Norwegian"}, {"portuguese", "pt"}, diff --git a/src/include/snowball/libstemmer/stem_UTF_8_nepali.h b/src/include/snowball/libstemmer/stem_UTF_8_nepali.h new file mode 100644 index 0000000000..20b2b919ac --- /dev/null +++ b/src/include/snowball/libstemmer/stem_UTF_8_nepali.h @@ -0,0 +1,16 @@ +/* This file was generated automatically by the Snowball to ISO C compiler */ +/* http://snowballstem.org/ */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct SN_env * nepali_UTF_8_create_env(void); +extern void nepali_UTF_8_close_env(struct SN_env * z); + +extern int nepali_UTF_8_stem(struct SN_env * z); + +#ifdef __cplusplus +} +#endif +