diff Wnn/include/jdata.h @ 0:bbc77ca4def5

initial import
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Thu, 13 Dec 2007 04:30:14 +0900
parents
children 790205f476c0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Wnn/include/jdata.h	Thu Dec 13 04:30:14 2007 +0900
@@ -0,0 +1,276 @@
+/*
+ *  $Id: jdata.h,v 1.5 2005/04/10 15:26:37 aonoto Exp $
+ */
+
+/*
+ * FreeWnn is a network-extensible Kana-to-Kanji conversion system.
+ * This file is part of FreeWnn.
+ * 
+ * Copyright Kyoto University Research Institute for Mathematical Sciences
+ *                 1987, 1988, 1989, 1990, 1991, 1992
+ * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
+ * Copyright ASTEC, Inc. 1987, 1988, 1989, 1990, 1991, 1992
+ * Copyright FreeWnn Project 1999, 2000
+ *
+ * Maintainer:  FreeWnn Project   <freewnn@tomo.gr.jp>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef WNN_JDATA_H
+#define WNN_JDATA_H
+
+#ifndef JS
+struct jdata
+{
+  int kanji1;
+  short kanji2;                 /* */
+  short which;                  /* gyaku henkan? */
+  int serial;                   /* index is a serial number of the first 
+                                   entry which is stored in this entry */
+  int kosuu;                    /* this means the number of elements in this
+                                   entry */
+  int jishono;                  /* jishono in which these entries are stored */
+  struct jdata *jptr;           /* pointer to another jdata which
+                                   points out a jdata of the same yomi
+                                   but (always)different jishono */
+  unsigned short *hinsi;
+#ifdef  CONVERT_with_SiSheng    /* Don't warry. Only use in server and jutil */
+/* It's only use CWNN : 四声 */
+  unsigned short *sisheng;
+  unsigned short sisheng_int;
+#endif
+  UCHAR *hindo;                 /* 頻度 */
+  UCHAR *hindo_in;              /* 内部頻度 */
+};
+#endif /* JS */
+
+struct JT
+{
+  unsigned int total;           /* トータル頻度 */
+  int gosuu;
+  char hpasswd[WNN_PASSWD_LEN];
+  int syurui;
+
+  int maxcomment;
+  int maxhinsi_list;
+  int maxserial;
+  int maxtable;                 /* For UD Dic */
+  int maxhontai;                /* For UD Dic  and Static Dic */
+  int maxkanji;
+  int maxri1[2];                /* For Rev Dic */
+  int maxri2;                   /* For Rev Dic, is equal to maxserial */
+
+
+  w_char *comment;
+  w_char *hinsi_list;
+
+  UCHAR *hindo;                 /* 頻度 */
+#ifdef  CONVERT_with_SiSheng    /* Don't warry. Only use in server and jutil */
+/* It's only use CWNN : 四声 */
+  unsigned short *sisheng;
+  unsigned short sisheng_int;
+#endif
+  unsigned short *hinsi;        /* bunpou data is stored here */
+  UCHAR *kanji;                 /* kanji data is stored here */
+  struct uind1 *table;          /* anothe tablefile for user jisho */
+  UCHAR *hontai;                /*  the tablefile (index-file) */
+  struct rind1 *ri1[2];         /* For Rev Dic */
+  struct rind2 *ri2;            /* For Rev Dic */
+
+  short dirty;
+  short hdirty;
+
+/* ここから4つは、 登録可能辞書、逆変換可能辞書にのみ関係する */
+  int bufsize_kanji;            /* 漢字領域の大きさ */
+  int bufsize_serial;           /* 文法、頻度領域の大きさ */
+  int bufsize_hontai;           /* インデックス(hontai)の領域の大きさ */
+  int bufsize_table;            /*  インデックス(table)の領域の大きさ */
+  int bufsize_ri1[2];           /* 逆変換可能辞書の table の領域の大きさ  */
+
+  /* hinsi_list wo kakunou suru */
+  int maxnode;
+  struct wnn_hinsi_node *node;
+#ifdef  CONVERT_by_STROKE       /* Don't warry. Only use in server and jutil */
+/* Used for Bixing dic  */
+  struct b_node *bind;          /* index for yomi <--> kanji search */
+  int max_bnode;                /* Max num of tuple     */
+  int bufsize_bnode;            /* BUFFER size of the b_node */
+#endif
+};
+
+struct HJT
+{
+  struct wnn_file_uniq dic_file_uniq;
+  int maxcomment;
+  int maxserial;
+
+  w_char *comment;
+  UCHAR *hindo;
+
+  short hdirty;
+  int bufsize_serial;
+};
+
+
+/*
+ * structures concerning UD dicts
+ */
+
+#define AL_INT(x) ((unsigned long)((char *)(x) + 3) & ((unsigned long)~0x3))
+
+
+#define ENDPTR 0                /* The end of (int) pointer list in uind2->next */
+#define RD_ENDPTR 0xffffffff    /* The end of (int) pointer list in rind2->next */
+
+struct uind1
+{
+  int pter1;                    /* pointer to uind1 */
+  int pter;                     /* pinter to uind2 */
+  unsigned int yomi1;
+  unsigned int yomi2;
+};
+
+struct uind2
+{
+  int next;                     /* pointer to uind2 */
+  int serial;
+  int kanjipter;
+  w_char kosuu;
+  w_char yomi[1];               /* actually it is variable length */
+};
+
+/* MAXTABLE MAX... ha user file no ookisani kuwaete touroku no tame 
+   ni totteoku ookisa*/
+#define MAXTABLE 100            /* you can touroku MAXTABLE element without 
+                                   realloc the jisho */
+#define MAXHONTAI MAXTABLE * 4 * 4
+#define MAXKANJI MAXTABLE * 10
+#define MAXSERIAL MAXTABLE
+#define MAXBIND MAXTABLE * 4
+/* 
+ * structures concerning REV dicts.
+ */
+
+struct rind1
+{
+  int pter1;                    /* pointer to rind1 */
+  int pter;                     /* pinter to rind2 */
+};
+
+struct rind2
+{
+  int next[2];                  /* pointer to rind2 */
+  int kanjipter;
+};
+
+/*
+ * Reverse Dict ni kansite, dotira wo hikuka?
+ */
+
+#define D_YOMI 0
+#define D_KANJI 1
+
+#define KANJI_str1(pter, which) (((which) == D_YOMI)?((w_char *)((pter) + 2)):\
+    ((w_char *)((pter) + 2) + Strlen((w_char *)((pter) + 2)) + 1))
+
+#define KANJI_str(p, which) ((*((p) + 1) & FORWARDED)? \
+    KANJI_str1(((*(w_char *)((p) + 2)) << 16 | (*(w_char *)((p) + 4))) \
+               + (p),which): \
+    KANJI_str1((p), which))
+
+#define Get_kanji_len(pter, which) (Strlen(KANJI_str(pter, which)))
+
+/* 
+ * structures concerning SD dicts.
+ */
+
+#define ST_NORMAL 1
+#define ST_NOENT 2
+#define ST_NOPTER 3
+#define ST_SMALL 4
+#define ST_TABLE 5
+
+/*
+ *Concerning HINSI. But these may not be used.
+ */
+
+#define SAKUJO_HINSI 0xfffe     /* sakujo sareta tango no hinsi */
+#define NANDEMO_EEYO 0xfffd     /* nandemo maeni koreru to iu hinsi */
+
+/*
+ *Concerning KANJI and COMMENT.
+ */
+
+#define HAS_YOMI 1
+#define HAS_COMMENT 2
+#define FORWARDED 4
+
+/* #define SEPARATE_CHAR '\0'*/
+/* Choose character which do not appear as the first byte of w_char */
+
+#define DIC_YOMI_CHAR  1
+#define DIC_COMMENT_CHAR  2
+
+
+#define DIC_HIRAGANA "\\y"
+#define DIC_KATAKANA "\\k"
+
+/*#define       DIC_HANKAKU     "\\h"   *//* 半角 *//* 読みのまま */
+#define DIC_ZENKAKU     "\\z"   /* 全角 */      /* 123 */
+#define DIC_NUM_KAN     "\\chan"        /* 漢数字 */    /* 一二三 */
+#define DIC_NUM_KANSUUJI "\\chas"       /* 漢数字 */    /* 百二十三 */
+#define DIC_NUM_KANOLD  "\\chao"        /* 漢数字 */    /* 壱百弐拾参 */
+#define DIC_NUM_HANCAN  "\\nhc" /* 半角数字 */  /* 1,234 */
+#define DIC_NUM_ZENCAN  "\\nzc" /* 全角数字 */  /* 1,234 */
+#define DIC_HEX         "\\X"   /* \Xa4a2 */
+#define DIC_HEXc        "\\x"   /* \xa4a2 */
+#define DIC_OCT         "\\0"   /* \040   */
+#define DIC_ESC         "\\\\"  /* \\ = \  */
+
+#ifdef notuse
+/* 英数 */
+#define WNN_ALP_HAN     -4      /* 半角 */      /* 読みのまま */
+#define WNN_ALP_ZEN     -30     /* 全角 */
+/* 記号 */
+#define WNN_KIG_HAN     -5      /* 半角 */      /* 読みのまま */
+#define WNN_KIG_JIS     -40     /* 全角(JIS) */
+#define WNN_KIG_ASC     -41     /* 全角(ASC) */
+#endif
+
+#ifdef  CONVERT_by_STROKE
+struct b_node
+{
+  short pter;                   /* Point to Indix-2     */
+  short pter_son;               /* Ptr to first son     */
+  short pter_next;              /* Ptr to next brother  */
+};
+
+struct b_koho
+{
+  struct b_koho *previou;
+  int value;
+  w_char *p_yomi;
+  w_char *p_kanji;
+  unsigned short *p_hinsi;
+  UCHAR *p_hindo;
+  int serial;
+  int dic_no;
+};
+#endif  /* CONVERT_by_STROKE */
+
+
+#endif  /* WNN_JDATA_H */