4 #include "../include/libstemmer.h"
5 #include "../runtime/api.h"
9 struct SN_env * (*create)(void);
28 if (strcmp(encoding->
name, charenc) == 0)
break;
44 for (module =
modules; module->
name != 0; module++) {
45 if (strcmp(module->
name, algorithm) == 0 && module->
enc == enc)
break;
47 if (module->
name == NULL)
return NULL;
50 if (stemmer == NULL)
return NULL;
57 if (stemmer->
env == NULL)
69 if (stemmer == 0)
return;
70 if (stemmer->
close == 0)
return;
85 ret = stemmer->
stem(stemmer->
env);
86 if (ret < 0)
return NULL;
87 stemmer->
env->
p[stemmer->
env->
l] = 0;
94 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 sb_symbol * sb_stemmer_stem(struct sb_stemmer *stemmer, const sb_symbol *word, int size)
void sb_stemmer_delete(struct sb_stemmer *stemmer)
const char ** sb_stemmer_list(void)
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 *)
struct SN_env *(* create)(void)
struct SN_env *(* create)(void)
void(* close)(struct SN_env *)
int(* stem)(struct SN_env *)