Mercurial > freewnn
annotate Wnn/include/jdata.h @ 27:6bfa7ea3b75b
- resolved conflict between pointer and int
- more warning suppression
| author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
|---|---|
| date | Sat, 06 Mar 2010 18:29:27 +0900 |
| parents | b605a0e60f5b |
| children |
| rev | line source |
|---|---|
| 0 | 1 /* |
| 2 * $Id: jdata.h,v 1.5 2005/04/10 15:26:37 aonoto Exp $ | |
| 3 */ | |
| 4 | |
| 5 /* | |
| 6 * FreeWnn is a network-extensible Kana-to-Kanji conversion system. | |
| 7 * This file is part of FreeWnn. | |
| 8 * | |
| 9 * Copyright Kyoto University Research Institute for Mathematical Sciences | |
| 10 * 1987, 1988, 1989, 1990, 1991, 1992 | |
| 11 * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999 | |
| 12 * Copyright ASTEC, Inc. 1987, 1988, 1989, 1990, 1991, 1992 | |
| 13 * Copyright FreeWnn Project 1999, 2000 | |
| 14 * | |
| 15 * Maintainer: FreeWnn Project <freewnn@tomo.gr.jp> | |
| 16 * | |
| 17 * This library is free software; you can redistribute it and/or | |
| 18 * modify it under the terms of the GNU Lesser General Public | |
| 19 * License as published by the Free Software Foundation; either | |
| 20 * version 2 of the License, or (at your option) any later version. | |
| 21 * | |
| 22 * This library is distributed in the hope that it will be useful, | |
| 23 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 25 * Lesser General Public License for more details. | |
| 26 * | |
| 27 * You should have received a copy of the GNU Lesser General Public | |
| 28 * License along with this library; if not, write to the | |
| 29 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 30 * Boston, MA 02111-1307, USA. | |
| 31 */ | |
| 32 | |
| 33 #ifndef WNN_JDATA_H | |
| 34 #define WNN_JDATA_H | |
| 35 | |
| 36 #ifndef JS | |
| 37 struct jdata | |
| 38 { | |
|
27
6bfa7ea3b75b
- resolved conflict between pointer and int
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
2
diff
changeset
|
39 int kanji1; /* index */ |
|
6bfa7ea3b75b
- resolved conflict between pointer and int
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
2
diff
changeset
|
40 short kanji2; /* index */ |
| 0 | 41 short which; /* gyaku henkan? */ |
| 42 int serial; /* index is a serial number of the first | |
| 43 entry which is stored in this entry */ | |
| 44 int kosuu; /* this means the number of elements in this | |
| 45 entry */ | |
| 46 int jishono; /* jishono in which these entries are stored */ | |
| 47 struct jdata *jptr; /* pointer to another jdata which | |
| 48 points out a jdata of the same yomi | |
| 49 but (always)different jishono */ | |
| 50 unsigned short *hinsi; | |
| 51 #ifdef CONVERT_with_SiSheng /* Don't warry. Only use in server and jutil */ | |
| 52 /* It's only use CWNN : 四声 */ | |
| 53 unsigned short *sisheng; | |
| 54 unsigned short sisheng_int; | |
| 55 #endif | |
| 56 UCHAR *hindo; /* 頻度 */ | |
| 57 UCHAR *hindo_in; /* 内部頻度 */ | |
| 58 }; | |
| 59 #endif /* JS */ | |
| 60 | |
| 61 struct JT | |
| 62 { | |
| 63 unsigned int total; /* トータル頻度 */ | |
| 64 int gosuu; | |
| 65 char hpasswd[WNN_PASSWD_LEN]; | |
| 66 int syurui; | |
| 67 | |
| 68 int maxcomment; | |
| 69 int maxhinsi_list; | |
| 70 int maxserial; | |
| 71 int maxtable; /* For UD Dic */ | |
| 72 int maxhontai; /* For UD Dic and Static Dic */ | |
| 73 int maxkanji; | |
| 74 int maxri1[2]; /* For Rev Dic */ | |
| 75 int maxri2; /* For Rev Dic, is equal to maxserial */ | |
| 76 | |
| 77 | |
| 78 w_char *comment; | |
| 79 w_char *hinsi_list; | |
| 80 | |
| 81 UCHAR *hindo; /* 頻度 */ | |
| 82 #ifdef CONVERT_with_SiSheng /* Don't warry. Only use in server and jutil */ | |
| 83 /* It's only use CWNN : 四声 */ | |
| 84 unsigned short *sisheng; | |
| 85 unsigned short sisheng_int; | |
| 86 #endif | |
| 87 unsigned short *hinsi; /* bunpou data is stored here */ | |
| 88 UCHAR *kanji; /* kanji data is stored here */ | |
| 1 | 89 struct uind1 *table; /* another tablefile for user jisho */ |
| 0 | 90 UCHAR *hontai; /* the tablefile (index-file) */ |
| 91 struct rind1 *ri1[2]; /* For Rev Dic */ | |
| 92 struct rind2 *ri2; /* For Rev Dic */ | |
| 93 | |
| 94 short dirty; | |
| 95 short hdirty; | |
| 96 | |
| 97 /* ここから4つは、 登録可能辞書、逆変換可能辞書にのみ関係する */ | |
| 98 int bufsize_kanji; /* 漢字領域の大きさ */ | |
| 99 int bufsize_serial; /* 文法、頻度領域の大きさ */ | |
| 100 int bufsize_hontai; /* インデックス(hontai)の領域の大きさ */ | |
| 101 int bufsize_table; /* インデックス(table)の領域の大きさ */ | |
| 102 int bufsize_ri1[2]; /* 逆変換可能辞書の table の領域の大きさ */ | |
| 103 | |
| 104 /* hinsi_list wo kakunou suru */ | |
| 105 int maxnode; | |
| 106 struct wnn_hinsi_node *node; | |
| 107 #ifdef CONVERT_by_STROKE /* Don't warry. Only use in server and jutil */ | |
| 108 /* Used for Bixing dic */ | |
| 109 struct b_node *bind; /* index for yomi <--> kanji search */ | |
| 110 int max_bnode; /* Max num of tuple */ | |
| 111 int bufsize_bnode; /* BUFFER size of the b_node */ | |
| 112 #endif | |
| 113 }; | |
| 114 | |
| 115 struct HJT | |
| 116 { | |
| 117 struct wnn_file_uniq dic_file_uniq; | |
| 118 int maxcomment; | |
| 119 int maxserial; | |
| 120 | |
| 121 w_char *comment; | |
| 122 UCHAR *hindo; | |
| 123 | |
| 124 short hdirty; | |
| 125 int bufsize_serial; | |
| 126 }; | |
| 127 | |
| 128 | |
| 129 /* | |
| 130 * structures concerning UD dicts | |
| 131 */ | |
| 132 | |
| 133 #define AL_INT(x) ((unsigned long)((char *)(x) + 3) & ((unsigned long)~0x3)) | |
| 134 | |
| 135 | |
| 136 #define ENDPTR 0 /* The end of (int) pointer list in uind2->next */ | |
| 137 #define RD_ENDPTR 0xffffffff /* The end of (int) pointer list in rind2->next */ | |
| 138 | |
| 139 struct uind1 | |
| 140 { | |
|
27
6bfa7ea3b75b
- resolved conflict between pointer and int
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
2
diff
changeset
|
141 int pter1; /* pointer to uind1 (index?) */ |
|
6bfa7ea3b75b
- resolved conflict between pointer and int
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
2
diff
changeset
|
142 int pter; /* pinter to uind2 (index?) */ |
| 0 | 143 unsigned int yomi1; |
| 144 unsigned int yomi2; | |
| 145 }; | |
| 146 | |
| 147 struct uind2 | |
| 148 { | |
|
27
6bfa7ea3b75b
- resolved conflict between pointer and int
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
2
diff
changeset
|
149 int next; /* pointer to uind2 (index?) */ |
| 0 | 150 int serial; |
|
27
6bfa7ea3b75b
- resolved conflict between pointer and int
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
2
diff
changeset
|
151 int kanjipter; /* index maybe */ |
| 0 | 152 w_char kosuu; |
| 153 w_char yomi[1]; /* actually it is variable length */ | |
| 154 }; | |
| 155 | |
| 156 /* MAXTABLE MAX... ha user file no ookisani kuwaete touroku no tame | |
| 157 ni totteoku ookisa*/ | |
| 158 #define MAXTABLE 100 /* you can touroku MAXTABLE element without | |
| 159 realloc the jisho */ | |
| 160 #define MAXHONTAI MAXTABLE * 4 * 4 | |
| 161 #define MAXKANJI MAXTABLE * 10 | |
| 162 #define MAXSERIAL MAXTABLE | |
| 163 #define MAXBIND MAXTABLE * 4 | |
| 164 /* | |
| 165 * structures concerning REV dicts. | |
| 166 */ | |
| 167 | |
| 168 struct rind1 | |
| 169 { | |
| 170 int pter1; /* pointer to rind1 */ | |
| 171 int pter; /* pinter to rind2 */ | |
| 172 }; | |
| 173 | |
| 174 struct rind2 | |
| 175 { | |
| 176 int next[2]; /* pointer to rind2 */ | |
| 2 | 177 int kanjipter; |
| 0 | 178 }; |
| 179 | |
| 180 /* | |
| 181 * Reverse Dict ni kansite, dotira wo hikuka? | |
| 182 */ | |
| 183 | |
| 184 #define D_YOMI 0 | |
| 185 #define D_KANJI 1 | |
| 186 | |
| 187 #define KANJI_str1(pter, which) (((which) == D_YOMI)?((w_char *)((pter) + 2)):\ | |
| 188 ((w_char *)((pter) + 2) + Strlen((w_char *)((pter) + 2)) + 1)) | |
| 189 | |
| 190 #define KANJI_str(p, which) ((*((p) + 1) & FORWARDED)? \ | |
| 191 KANJI_str1(((*(w_char *)((p) + 2)) << 16 | (*(w_char *)((p) + 4))) \ | |
| 192 + (p),which): \ | |
| 193 KANJI_str1((p), which)) | |
| 194 | |
| 195 #define Get_kanji_len(pter, which) (Strlen(KANJI_str(pter, which))) | |
| 196 | |
| 197 /* | |
| 198 * structures concerning SD dicts. | |
| 199 */ | |
| 200 | |
| 201 #define ST_NORMAL 1 | |
| 202 #define ST_NOENT 2 | |
| 203 #define ST_NOPTER 3 | |
| 204 #define ST_SMALL 4 | |
| 205 #define ST_TABLE 5 | |
| 206 | |
| 207 /* | |
| 208 *Concerning HINSI. But these may not be used. | |
| 209 */ | |
| 210 | |
| 211 #define SAKUJO_HINSI 0xfffe /* sakujo sareta tango no hinsi */ | |
| 212 #define NANDEMO_EEYO 0xfffd /* nandemo maeni koreru to iu hinsi */ | |
| 213 | |
| 214 /* | |
| 215 *Concerning KANJI and COMMENT. | |
| 216 */ | |
| 217 | |
| 218 #define HAS_YOMI 1 | |
| 219 #define HAS_COMMENT 2 | |
| 220 #define FORWARDED 4 | |
| 221 | |
| 222 /* #define SEPARATE_CHAR '\0'*/ | |
| 223 /* Choose character which do not appear as the first byte of w_char */ | |
| 224 | |
| 225 #define DIC_YOMI_CHAR 1 | |
| 226 #define DIC_COMMENT_CHAR 2 | |
| 227 | |
| 228 | |
| 229 #define DIC_HIRAGANA "\\y" | |
| 230 #define DIC_KATAKANA "\\k" | |
| 231 | |
| 232 /*#define DIC_HANKAKU "\\h" *//* 半角 *//* 読みのまま */ | |
| 233 #define DIC_ZENKAKU "\\z" /* 全角 */ /* 123 */ | |
| 234 #define DIC_NUM_KAN "\\chan" /* 漢数字 */ /* 一二三 */ | |
| 235 #define DIC_NUM_KANSUUJI "\\chas" /* 漢数字 */ /* 百二十三 */ | |
| 236 #define DIC_NUM_KANOLD "\\chao" /* 漢数字 */ /* 壱百弐拾参 */ | |
| 237 #define DIC_NUM_HANCAN "\\nhc" /* 半角数字 */ /* 1,234 */ | |
| 238 #define DIC_NUM_ZENCAN "\\nzc" /* 全角数字 */ /* 1,234 */ | |
| 239 #define DIC_HEX "\\X" /* \Xa4a2 */ | |
| 240 #define DIC_HEXc "\\x" /* \xa4a2 */ | |
| 241 #define DIC_OCT "\\0" /* \040 */ | |
| 242 #define DIC_ESC "\\\\" /* \\ = \ */ | |
| 243 | |
| 244 #ifdef notuse | |
| 245 /* 英数 */ | |
| 246 #define WNN_ALP_HAN -4 /* 半角 */ /* 読みのまま */ | |
| 247 #define WNN_ALP_ZEN -30 /* 全角 */ | |
| 248 /* 記号 */ | |
| 249 #define WNN_KIG_HAN -5 /* 半角 */ /* 読みのまま */ | |
| 250 #define WNN_KIG_JIS -40 /* 全角(JIS) */ | |
| 251 #define WNN_KIG_ASC -41 /* 全角(ASC) */ | |
| 252 #endif | |
| 253 | |
| 254 #ifdef CONVERT_by_STROKE | |
| 255 struct b_node | |
| 256 { | |
| 257 short pter; /* Point to Indix-2 */ | |
| 258 short pter_son; /* Ptr to first son */ | |
| 259 short pter_next; /* Ptr to next brother */ | |
| 260 }; | |
| 261 | |
| 262 struct b_koho | |
| 263 { | |
| 264 struct b_koho *previou; | |
| 265 int value; | |
| 266 w_char *p_yomi; | |
| 267 w_char *p_kanji; | |
| 268 unsigned short *p_hinsi; | |
| 269 UCHAR *p_hindo; | |
| 270 int serial; | |
| 271 int dic_no; | |
| 272 }; | |
| 273 #endif /* CONVERT_by_STROKE */ | |
| 274 | |
| 275 | |
| 276 #endif /* WNN_JDATA_H */ |
