7 #include "baseaffix.hxx"
8 #include "affixmgr.hxx"
12 class LIBHUNSPELL_DLL_EXPORTED PfxEntry
: protected AffEntry
23 PfxEntry(AffixMgr
* pmgr
, affentry
* dp
);
26 inline bool allowCross() { return ((opts
& aeXPRODUCT
) != 0); }
27 struct hentry
* checkword(const char * word
, int len
, char in_compound
,
28 const FLAG needflag
= FLAG_NULL
);
30 struct hentry
* check_twosfx(const char * word
, int len
, char in_compound
, const FLAG needflag
= NULL
);
32 char * check_morph(const char * word
, int len
, char in_compound
,
33 const FLAG needflag
= FLAG_NULL
);
35 char * check_twosfx_morph(const char * word
, int len
,
36 char in_compound
, const FLAG needflag
= FLAG_NULL
);
38 inline FLAG
getFlag() { return aflag
; }
39 inline const char * getKey() { return appnd
; }
40 char * add(const char * word
, int len
);
42 inline short getKeyLen() { return appndl
; }
44 inline const char * getMorph() { return morphcode
; }
46 inline const unsigned short * getCont() { return contclass
; }
47 inline short getContLen() { return contclasslen
; }
49 inline PfxEntry
* getNext() { return next
; }
50 inline PfxEntry
* getNextNE() { return nextne
; }
51 inline PfxEntry
* getNextEQ() { return nexteq
; }
52 inline PfxEntry
* getFlgNxt() { return flgnxt
; }
54 inline void setNext(PfxEntry
* ptr
) { next
= ptr
; }
55 inline void setNextNE(PfxEntry
* ptr
) { nextne
= ptr
; }
56 inline void setNextEQ(PfxEntry
* ptr
) { nexteq
= ptr
; }
57 inline void setFlgNxt(PfxEntry
* ptr
) { flgnxt
= ptr
; }
59 inline char * nextchar(char * p
);
60 inline int test_condition(const char * st
);
68 class LIBHUNSPELL_DLL_EXPORTED SfxEntry
: protected AffEntry
84 SfxEntry(AffixMgr
* pmgr
, affentry
* dp
);
87 inline bool allowCross() { return ((opts
& aeXPRODUCT
) != 0); }
88 struct hentry
* checkword(const char * word
, int len
, int optflags
,
89 PfxEntry
* ppfx
, char ** wlst
, int maxSug
, int * ns
,
90 // const FLAG cclass = FLAG_NULL, const FLAG needflag = FLAG_NULL, char in_compound=IN_CPD_NOT);
91 const FLAG cclass
= FLAG_NULL
, const FLAG needflag
= FLAG_NULL
, const FLAG badflag
= 0);
93 struct hentry
* check_twosfx(const char * word
, int len
, int optflags
, PfxEntry
* ppfx
, const FLAG needflag
= NULL
);
95 char * check_twosfx_morph(const char * word
, int len
, int optflags
,
96 PfxEntry
* ppfx
, const FLAG needflag
= FLAG_NULL
);
97 struct hentry
* get_next_homonym(struct hentry
* he
);
98 struct hentry
* get_next_homonym(struct hentry
* word
, int optflags
, PfxEntry
* ppfx
,
99 const FLAG cclass
, const FLAG needflag
);
102 inline FLAG
getFlag() { return aflag
; }
103 inline const char * getKey() { return rappnd
; }
104 char * add(const char * word
, int len
);
107 inline const char * getMorph() { return morphcode
; }
109 inline const unsigned short * getCont() { return contclass
; }
110 inline short getContLen() { return contclasslen
; }
111 inline const char * getAffix() { return appnd
; }
113 inline short getKeyLen() { return appndl
; }
115 inline SfxEntry
* getNext() { return next
; }
116 inline SfxEntry
* getNextNE() { return nextne
; }
117 inline SfxEntry
* getNextEQ() { return nexteq
; }
119 inline SfxEntry
* getLM() { return l_morph
; }
120 inline SfxEntry
* getRM() { return r_morph
; }
121 inline SfxEntry
* getEQM() { return eq_morph
; }
122 inline SfxEntry
* getFlgNxt() { return flgnxt
; }
124 inline void setNext(SfxEntry
* ptr
) { next
= ptr
; }
125 inline void setNextNE(SfxEntry
* ptr
) { nextne
= ptr
; }
126 inline void setNextEQ(SfxEntry
* ptr
) { nexteq
= ptr
; }
127 inline void setFlgNxt(SfxEntry
* ptr
) { flgnxt
= ptr
; }
129 inline char * nextchar(char * p
);
130 inline int test_condition(const char * st
, const char * begin
);