~snowball-yiddish-dev/snowball-yiddish/trunk

« back to all changes in this revision

Viewing changes to snowball/libstemmer/libstemmer.c

  • Committer: richard
  • Date: 2003-05-30 19:46:11 UTC
  • Revision ID: svn-v4:633ccae0-01f4-0310-8c99-d3591da6f01f:trunk:225
Add ability to get length of stemmed word, and list of available stemmers.
Update test accordingly.

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
    struct SN_env * env;
12
12
};
13
13
 
14
 
/** Create a new stemmer object, using the specified algorithm.
15
 
 *
16
 
 *  @return If the specified algorithm is not recognised, 0 will be 
17
 
 *  returned; otherwise a pointer to a newly created stemmer for that
18
 
 *  algorithm will be returned.
19
 
 */
20
 
struct sb_stemmer * sb_stemmer_new(const char * algorithm)
 
14
const char **
 
15
sb_stemmer_list()
 
16
{
 
17
    return algorithm_names;
 
18
}
 
19
 
 
20
struct sb_stemmer *
 
21
sb_stemmer_new(const char * algorithm)
21
22
{
22
23
    struct stemmer_modules * module;
23
24
    struct sb_stemmer * stemmer =
38
39
    return stemmer;
39
40
}
40
41
 
41
 
/** Delete a stemmer object.
42
 
 *
43
 
 *  This frees all resources allocated for the stemmer.  After calling
44
 
 *  this function, the supplied stemmer may no longer be used in any way.
45
 
 *
46
 
 *  It is safe to pass a null pointer to this function - this will have
47
 
 *  no effect.
48
 
 */
49
 
void sb_stemmer_delete(struct sb_stemmer * stemmer)
 
42
void
 
43
sb_stemmer_delete(struct sb_stemmer * stemmer)
50
44
{
51
45
    if (stemmer == 0) return;
52
46
    if (stemmer->close == 0) return;
55
49
    free(stemmer);
56
50
}
57
51
 
58
 
/** Stem a word.
59
 
 *
60
 
 *  The return value is owned by the stemmer - it must not be freed or
61
 
 *  modified, and it will become invalid when the stemmer is called again,
62
 
 *  or if the stemmer is freed.
63
 
 */
64
52
const sb_symbol *
65
53
sb_stemmer_stem(struct sb_stemmer * stemmer, const sb_symbol * word, int size)
66
54
{
69
57
    stemmer->env->p[stemmer->env->l] = 0;
70
58
    return stemmer->env->p;
71
59
}
 
60
 
 
61
int
 
62
sb_stemmer_length(struct sb_stemmer * stemmer)
 
63
{
 
64
    return stemmer->env->l;
 
65
}