4#include "../include/libstemmer.h"
5#include "../runtime/api.h"
10 struct SN_env *(*create) (void);
31 if (strcmp (encoding->
name, charenc) == 0)
34 if (encoding->
name == NULL)
50 for (module =
modules;
module->name != 0;
module++)
52 if (strcmp (module->name, algorithm) == 0 && module->enc == enc)
55 if (module->name == NULL)
62 stemmer->create =
module->create;
63 stemmer->close =
module->close;
64 stemmer->stem =
module->stem;
66 stemmer->env = stemmer->create ();
67 if (stemmer->env == NULL)
81 if (stemmer->
close == 0)
97 ret = stemmer->
stem (stemmer->
env);
100 stemmer->
env->
p[stemmer->
env->
l] = 0;
107 return stemmer->
env->
l;
int SN_set_current(struct SN_env *z, int size, const symbol *s)
int sb_stemmer_length(struct sb_stemmer *stemmer)
static stemmer_encoding_t sb_getenc(const char *charenc)
struct sb_stemmer * sb_stemmer_new(const char *algorithm, const char *charenc)
const char ** sb_stemmer_list(void)
void sb_stemmer_delete(struct sb_stemmer *stemmer)
const sb_symbol * sb_stemmer_stem(struct sb_stemmer *stemmer, const sb_symbol *word, int size)
static struct stemmer_modules modules[]
static struct stemmer_encoding encodings[]
static const char * algorithm_names[]
void(* close)(struct SN_env *)
int(* stem)(struct SN_env *)