xapian-core  2.0.0
danish.h
Go to the documentation of this file.
1 /* Generated from danish.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
2 
3 #include <xapian/stem.h>
4 
5 #define SNOWBALL_RUNTIME_THROW_EXCEPTIONS
7 
9 
11  public:
12  struct SN_local {
13  struct SN_env z;
14  int i_p1;
16  };
17 
18  private:
20 
21  void close_env() {
22  struct SN_env * z = &(zlocal.z);
23  lose_s(((SN_local *)z)->s_ch);
24  lose_s(z->p);
25  }
26 
27  static int stem(struct SN_env * z);
28 
29  public:
30  Danish() {
31  struct SN_env * z = &(zlocal.z);
32  z->p = create_s();
33  try {
34  ((SN_local *)z)->s_ch = create_s();
35  } catch (...) {
36  close_env();
37  throw;
38  }
39  }
40 
41  ~Danish() {
42  close_env();
43  }
44 
45  std::string operator()(const std::string& word) override {
46  struct SN_env* z = &(zlocal.z);
47  const symbol* s = reinterpret_cast<const symbol*>(word.data());
48  replace_s(z, 0, z->l, word.size(), s);
49  z->c = 0;
51  return std::string(reinterpret_cast<const char*>(z->p), SIZE(z->p));
52  }
53 
54  bool use_proper_noun_heuristic() const override {
55  return true;
56  }
57 
58  std::string get_description() const override {
59  return "danish";
60  }
61 };
62 
63 }
unsigned char symbol
Definition: api.h:4
std::string get_description() const override
Return a string describing this object.
Definition: danish.h:58
std::string operator()(const std::string &word) override
Stem the specified word.
Definition: danish.h:45
static int stem(struct SN_env *z)
Definition: danish.cc:254
bool use_proper_noun_heuristic() const override
Should QueryParser suppress stemming for capitalised words?
Definition: danish.h:54
Class representing a stemming algorithm implementation.
Definition: stem.h:41
#define SIZE(p)
Definition: header.h:21
void lose_s(byte *p)
Definition: utilities.cc:38
byte * create_s(int n)
SNOWBALL_ERR replace_s(struct SN_env *z, int c_bra, int c_ket, int s_size, const symbol *s)
Definition: utilities.cc:396
stemming algorithms
Definition: api.h:15
symbol * p
Definition: api.h:16
int c
Definition: api.h:17
int l
Definition: api.h:17