1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
#ifndef _dic_main_h_included_
#define _dic_main_h_included_
#include <anthy/dic.h>
#include <anthy/word_dic.h>
#include <anthy/wtype.h>
#include <anthy/xstr.h>
/* 辞書中の頻度に対して内部の頻度の倍率 */
#define FREQ_RATIO 8
/* dic_main.c */
int anthy_init_dic_cache(void);
struct seq_ent *anthy_cache_get_seq_ent(xstr *x, int is_reverse);
/* word_dic.c */
/* 辞書検索のキーに使用する部分文字列 */
struct gang_elm {
char *key;
xstr xs;
union {
/* 省メモリのためにunionにしている */
int idx;
struct gang_elm *next;
} tmp;
};
struct seq_ent *anthy_cache_get_seq_ent(xstr *xs, int is_reverse);
struct seq_ent *anthy_validate_seq_ent(struct seq_ent *seq, xstr *xs,
int is_reverse);
/* word_lookup.c */
void anthy_init_word_dic(void);
struct word_dic* anthy_create_word_dic(void);
void anthy_release_word_dic(struct word_dic *);
void anthy_gang_fill_seq_ent(struct word_dic *wd,
struct gang_elm **array, int nr,
int is_reverse);
/* use_dic.c */
void anthy_init_use_dic(void);
void anthy_quit_use_dic(void);
int anthy_word_dic_check_word_relation(struct word_dic *,
int from, int to);
struct dic_session *anthy_create_session(void);
void anthy_activate_session(struct dic_session *);
void anthy_release_session(struct dic_session *);
int anthy_get_current_session_mask(void);
/* mem_dic.c */
void anthy_init_mem_dic(void);
void anthy_quit_mem_dic(void);
struct mem_dic * anthy_create_mem_dic(void);
void anthy_release_mem_dic(struct mem_dic * );
/* node がなければ作る */
struct seq_ent *anthy_mem_dic_alloc_seq_ent_by_xstr(struct mem_dic * d,
xstr *, int is_reverse);
/* node がなければ作らない */
struct seq_ent *anthy_mem_dic_find_seq_ent_by_xstr(struct mem_dic * d,
xstr *, int is_reverse);
/**/
void anthy_mem_dic_push_back_dic_ent(struct seq_ent *se, int is_compound,
xstr *xs, wtype_t wt,
const char *wt_name, int freq,
int feature);
void anthy_mem_dic_release_seq_ent(struct mem_dic * d, xstr *, int is_reverse);
/* priv_dic.c */
void anthy_init_private_dic(const char *id);
void anthy_copy_words_from_private_dic(struct seq_ent *seq, xstr *xs,
int is_reverse);
void anthy_release_private_dic(void);
void anthy_check_user_dir(void);
void anthy_priv_dic_lock(void);
void anthy_priv_dic_unlock(void);
struct word_line {
char wt[10];
int freq;
const char *word;
};
int anthy_parse_word_line(const char *line, struct word_line *res);
void anthy_ask_scan(void (*request_scan)(const char *, void *), void *arg);
#endif
|