1 #ifndef _SUGGESTMGR_HXX_
2 #define _SUGGESTMGR_HXX_
5 #define MAXSWUTF8L (MAXSWL * 4)
11 #define MAXCOMPOUNDSUGS 3
13 // timelimit: max ~1/4 sec (process time on Linux) for a time consuming function
14 #define TIMELIMIT (CLOCKS_PER_SEC >> 2)
16 #define MAXPLUSTIMER 100
18 #define NGRAM_LONGER_WORSE (1 << 0)
19 #define NGRAM_ANY_MISMATCH (1 << 1)
20 #define NGRAM_LOWERING (1 << 2)
21 #define NGRAM_WEIGHTED (1 << 3)
23 #include "hunvisapi.h"
26 #include "affixmgr.hxx"
27 #include "hashmgr.hxx"
28 #include "langnum.hxx"
31 enum { LCS_UP
, LCS_LEFT
, LCS_UPLEFT
};
33 class LIBHUNSPELL_DLL_EXPORTED SuggestMgr
45 struct cs_info
* csconv
;
55 SuggestMgr(const char * tryme
, int maxn
, AffixMgr
*aptr
);
58 int suggest(char*** slst
, const char * word
, int nsug
, int * onlycmpdsug
);
59 int ngsuggest(char ** wlst
, char * word
, int ns
, HashMgr
** pHMgr
, int md
);
60 int suggest_auto(char*** slst
, const char * word
, int nsug
);
61 int suggest_stems(char*** slst
, const char * word
, int nsug
);
62 int suggest_pos_stems(char*** slst
, const char * word
, int nsug
);
64 char * suggest_morph(const char * word
);
65 char * suggest_gen(char ** pl
, int pln
, char * pattern
);
66 char * suggest_morph_for_spelling_error(const char * word
);
69 int testsug(char** wlst
, const char * candidate
, int wl
, int ns
, int cpdsuggest
,
70 int * timer
, clock_t * timelimit
);
71 int checkword(const char *, int, int, int *, clock_t *);
72 int check_forbidden(const char *, int);
74 int capchars(char **, const char *, int, int);
75 int replchars(char**, const char *, int, int);
76 int doubletwochars(char**, const char *, int, int);
77 int forgotchar(char **, const char *, int, int);
78 int swapchar(char **, const char *, int, int);
79 int longswapchar(char **, const char *, int, int);
80 int movechar(char **, const char *, int, int);
81 int extrachar(char **, const char *, int, int);
82 int badcharkey(char **, const char *, int, int);
83 int badchar(char **, const char *, int, int);
84 int twowords(char **, const char *, int, int);
85 int fixstems(char **, const char *, int);
87 int capchars_utf(char **, const w_char
*, int wl
, int, int);
88 int doubletwochars_utf(char**, const w_char
*, int wl
, int, int);
89 int forgotchar_utf(char**, const w_char
*, int wl
, int, int);
90 int extrachar_utf(char**, const w_char
*, int wl
, int, int);
91 int badcharkey_utf(char **, const w_char
*, int wl
, int, int);
92 int badchar_utf(char **, const w_char
*, int wl
, int, int);
93 int swapchar_utf(char **, const w_char
*, int wl
, int, int);
94 int longswapchar_utf(char **, const w_char
*, int, int, int);
95 int movechar_utf(char **, const w_char
*, int, int, int);
97 int mapchars(char**, const char *, int, int);
98 int map_related(const char *, char *, int, int, char ** wlst
, int, int, const mapentry
*, int, int *, clock_t *);
99 int ngram(int n
, char * s1
, const char * s2
, int opt
);
100 int mystrlen(const char * word
);
101 int leftcommonsubstring(char * s1
, const char * s2
);
102 int commoncharacterpositions(char * s1
, const char * s2
, int * is_swap
);
103 void bubblesort( char ** rwd
, char ** rwd2
, int * rsc
, int n
);
104 void lcs(const char * s
, const char * s2
, int * l1
, int * l2
, char ** result
);
105 int lcslen(const char * s
, const char* s2
);
106 char * suggest_hentry_gen(hentry
* rv
, char * pattern
);