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

« back to all changes in this revision

Viewing changes to snowball/include/libstemmer.h

  • Committer: richard
  • Date: 2004-08-28 11:57:58 UTC
  • Revision ID: svn-v4:633ccae0-01f4-0310-8c99-d3591da6f01f:trunk:256
Move libstemmer.h to a separate "include" directory, so that it can be
added to the search path without risking bringing other, non-public,
headers onto the search path.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
/* Make header file work when included from C++ */
 
3
#ifdef __cplusplus
 
4
extern "C" {
 
5
#endif
 
6
 
 
7
struct sb_stemmer;
 
8
typedef char sb_symbol;
 
9
 
 
10
/* FIXME - should be able to get a version number for each stemming
 
11
 * algorithm (which will be incremented each time the output changes). */
 
12
 
 
13
/** Returns an array of the names of the available stemming algorithms.
 
14
 *  Note that these are the canonical names - aliases (ie, other names for
 
15
 *  the same algorithm) will not be included in the list.
 
16
 *  The list is terminated with a null pointer.
 
17
 *
 
18
 *  The list must not be modified in any way.
 
19
 */
 
20
const char ** sb_stemmer_list(void);
 
21
 
 
22
/** Create a new stemmer object, using the specified algorithm.
 
23
 *
 
24
 *  @return If the specified algorithm is not recognised, 0 will be 
 
25
 *  returned; otherwise a pointer to a newly created stemmer for that
 
26
 *  algorithm will be returned.
 
27
 */
 
28
struct sb_stemmer * sb_stemmer_new(const char * algorithm);
 
29
 
 
30
/** Delete a stemmer object.
 
31
 *
 
32
 *  This frees all resources allocated for the stemmer.  After calling
 
33
 *  this function, the supplied stemmer may no longer be used in any way.
 
34
 *
 
35
 *  It is safe to pass a null pointer to this function - this will have
 
36
 *  no effect.
 
37
 */
 
38
void                sb_stemmer_delete(struct sb_stemmer * stemmer);
 
39
 
 
40
/** Stem a word.
 
41
 *
 
42
 *  The return value is owned by the stemmer - it must not be freed or
 
43
 *  modified, and it will become invalid when the stemmer is called again,
 
44
 *  or if the stemmer is freed.
 
45
 *
 
46
 *  The length of the return value can be obtained using sb_stemmer_length()
 
47
 */
 
48
const sb_symbol *   sb_stemmer_stem(struct sb_stemmer * stemmer,
 
49
                                    const sb_symbol * word, int size);
 
50
 
 
51
/** Get the length of the result of the last stemmed word.
 
52
 *  This should not be called before sb_stemmer_stem() has been called.
 
53
 */
 
54
int                 sb_stemmer_length(struct sb_stemmer * stemmer);
 
55
 
 
56
#ifdef __cplusplus
 
57
}
 
58
#endif
 
59