view Wnn/jserver/ddefine.h @ 14:709a803fbbff

fixed prototype erratas
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Sun, 02 Mar 2008 21:49:59 +0900
parents bbc77ca4def5
children
line wrap: on
line source

/*
 *  $Id: ddefine.h,v 1.7 2003/05/11 18:29:19 hiroo 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, 2003
 *
 * Maintainer:  FreeWnn Project   <freewnn@tomo.gr.jp>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

/************************
 * define of daemon
 ************************/

#ifndef JSERVER_DDEFINE_H
#define JSERVER_DDEFINE_H 1

#include <ctype.h>

#define SIZE_JISHOTABLE 1000
#define SIZE_JISHOHEAP 2000

#define KANGO_HINSI_MX  256     /* ´´¸ì¤ÎÉÊ»ì¿ô¤ÎºÇÂç¿ô */
#define KANGO_VECT_L (KANGO_HINSI_MX+8*4-1)/(8*4)       /* ´´¸ìÀܳ¥Ù¥¯¥¿¤ÎŤµ */
#define FZKVECT_L       5       /* ÉÕ°¸ì¥Ù¥¯¥¿¤ÎŤµ */
#define VECT_L  KANGO_VECT_L + FZKVECT_L        /* Àܳ¥Ù¥¯¥¿¤ÎŤµ */

struct fzkkouho
{                               /* used in reffering to fuzokugo jouhou 
                                   fuzokugo jouhou is stored using this struct */
  int offset;
  int vector[KANGO_VECT_L];     /* ´´¸ì½ªÃ¼¥Ù¥¯¥¿ */
};

/* macro C(i , j)  is useful for finding a pointer which points out 
   the first jishoentry whose yomi starts at i and endes at j
   which returns NULL if there is no entry which matches this
*/

#define C(i,j)  (j > maxj[i] ? (struct jdata *)NULL : *(jmtp[i] + (j - i)))


/* #define      FZKIBNO 10 */
#define FZKIBNO 5

/* ÉÕ°¸ì²òÀÏ·ë²Ì */
struct ICHBNP
{
  struct ICHBNP *next_p;
  struct fzkkouho fzkib[FZKIBNO];       /* vec ¤Î²òÀÏ·ë²Ì */
  struct fzkkouho fzkib1[FZKIBNO];      /* vec1 ¤Î²òÀÏ·ë²Ì */
};
/* ¼Â¤Ï¡¢fzkib1->offset ¤Ï¡¢¤´¤ß¤¬Æþ¤Ã¤Æ¤¤¤ë */

#define SV_KOSUU        3

#define UJIS_A          0xa3c1  /* £Á */
#define UJIS_Z          0xa3da  /* £Ú */
#define UJIS_a          0xa3e1  /* £á */
#define UJIS_z          0xa3fa  /* £ú */
#ifdef CHINESE
#define UJIS_comma      0xa3ac  /* ¡¤ */
#define S_PAREN         0xa1ae  /* ¡Æ */
#define E_PAREN         0xa1bf  /* ¡Û */
#else
# ifdef KOREAN
#define UJIS_comma      0xa3ac  /* ¡¤ */
#define S_PAREN         0xa1ae  /* ¡Æ */
#define E_PAREN         0xa1bd  /* ¡Û */
# else
#define UJIS_comma      0xa1a4  /* ¡¤ */
#define S_PAREN         0xa1c6  /* ¡Æ */
#define E_PAREN         0xa1db  /* ¡Û */
# endif
#endif /* CHINESE */
/*
#define isdigit(x)      ((unsigned)((x) - '0') <= ('9' - '0'))
#define isalpha(x)      ((unsigned)((x) - 'A') <= ('Z' - 'A') || \
                            (unsigned)((x) - 'a') <= ('z' - 'a'))
#define isalnum(x)      (isalpha(x) || isdigit(x))
*/
#ifdef  isspace
#       undef   isspace         /* ctype.h ¤Î isspace() ¤Ï»È¤ï¤Ê¤¤ */
#endif
#define isspace(x)      (((x) == ' ') || ((x) == 0x09))
#define isjspace(x)     ((x) == 0xa1a1)
#define isparen_s(x)    (/* (x) == '\"' || */ (x) == '`' || \
/* ³«³ç¸Ì */             (x) == '(' || (x) == '<' || \
                         (x) == '[' || (x) == '{')
#define isparen_e(x)    ((x) == '\"' || (x) == '\'' || \
/* Êijç¸Ì */             (x) == ')' || (x) == '>' || \
                         (x) == ']' || (x) == '}')

#define isjdigit(x)     ((unsigned)((x) - S_NUM) <= (E_NUM - S_NUM))
#define isjalpha(x)     ((unsigned)((x) - UJIS_A) <= (UJIS_Z - UJIS_A) || \
                         (unsigned)((x) - UJIS_a) <= (UJIS_z - UJIS_a))
#define isjalnum(x)     (isjalpha(x) || isjdigit(x))
#define isjhira(x)      ((unsigned)((x) - S_HIRA) <= (E_HIRA - S_HIRA))
#define isjkata(x)      ((unsigned)((x) - S_KATA) <= (E_KATA - S_KATA))
#define isj1bytekana(x) ((unsigned)((x) - S_HANKATA) <= (E_HANKATA - S_HANKATA))
# define S_KANJI        0xb0a1  /* 16¶è */
# define E_KANJI        0xfefe  /* 94¶è */
#ifdef  CHINESE
# define S_HANJI        0x20a1  /* 16¶è */
# define E_HANJI        0x7efe  /* 94¶è */
#define isjkanji(x)     (((unsigned)((x) - S_KANJI) <= (E_KANJI - S_KANJI)) || \
                         ((unsigned)((x) - S_HANJI) <= (E_HANJI - S_HANJI)))
#define isjparen(x)     ((unsigned)((x) - S_PAREN) <= (E_PAREN - S_PAREN) || \
                         (x)==0xa3a8 || (x)==0xa3a9 ||  \
                         (x)==0xa3bc || (x)==0xa3be || \
                         (x)==0xa3db || (x)==0xa3dd || \
                         (x)==0xa3fb || (x)==0xa3fd )
                        /*  for (  )  <  >  [  ]  { } */
#define isjparen_s(x)   (((unsigned)((x) - S_PAREN) <= (E_PAREN - S_PAREN)) && \
                             (((x) & 0x01) == 0) || \
                         (x)==0xa3a8 || (x)==0xa3bc || \
                         (x)==0xa3db || (x)==0xa3fb )

#define isjparen_e(x)   (((unsigned)((x) - S_PAREN) <= (E_PAREN - S_PAREN)) && \
                             (((x) & 0x01) == 1) || \
                         (x)==0xa3a9 || (x)==0xa3be || \
                         (x)==0xa3dd || (x)==0xa3fd )
#else
# ifdef KOREAN
#define S_HANJA 0xcaa1          /* Ê¡ */
#define E_HANJA 0xfdfe          /* ýþ */
#define isjkanji(x)     ((unsigned)((x) - S_HANJA) <= (E_HANJA - S_HANJA))
#define isjparen(x)     ((unsigned)((x) - S_PAREN) <= (E_PAREN - S_PAREN) || \
                         (x)==0xa3a8 || (x) ==0xa3a9 || \
                         (x)==0xa3bc || (x) ==0xa3be || \
                         (x)==0xa3db || (x) ==0xa3dd || \
                         (x)==0xa3fb || (x) ==0xa3fc )
#define isjparen_s(x)   (((unsigned)((x) - S_PAREN) <= (E_PAREN - S_PAREN)) && \
                            (((x) & 0x01) == 0) || \
                         (x)==0xa3a8 || (x)==0xa3bc || \
                         (x)==0xa3db || (x)==0xa3fb)
#define isjparen_e(x)   (((unsigned)((x) - S_PAREN) <= (E_PAREN - S_PAREN)) && \
                            (((x) & 0x01) == 1) || \
                         (x) ==0xa3a9 || (x) ==0xa3be || \
                         (x) ==0xa3dd || (x) ==0xa3fc )
#define ishangul(x)     ((unsigned)((x) - S_HANGUL) <= (E_HANGUL - S_HANGUL))
# else /* JAPANESE */
#define isjkanji(x)     ((unsigned)((x) - S_KANJI) <= (E_KANJI - S_KANJI))
#define isjparen(x)     ((unsigned)((x) - S_PAREN) <= (E_PAREN - S_PAREN))
#define isjparen_s(x)   (isjparen(x) && (((x) & 0x01) == 0))
#define isjparen_e(x)   (isjparen(x) && ((x) & 0x01))
# endif /* KOREAN */
#endif /* CHINESE */

#define UJIS_DKT        0xa1ab  /* ¡« */
#define UJIS_HDK        0xa1ac  /* ¡¬ */

#define BAR_CODE(x)     ((x) == BAR)
#define TOKU(x) (((x) == UJIS_DKT) || ((x) == UJIS_HDK))

#define TOKUSYU(x)      (TOKU(x) || isjkata(x) || isj1bytekana(x))
        /* this resembles macro before */

#define kuten(x)        (((x)==KUTEN_NUM)? True:False)
#define touten(x)       (((x)==TOUTEN_NUM)? True:False)

struct SYO_BNSETSU
{
  struct SYO_BNSETSU *lnk_br;   /* ¾¤Î¾®Ê¸Àá¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  struct SYO_BNSETSU *parent;   /* °ì¤ÄÁ°¤Î¾®Ê¸Àá¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  short j_c;                    /* ´´¸ì top index */
  short i_jc;                   /* ´´¸ì end index */
  short bend_m;                 /* ¾®Ê¸Àá end char index */
  int v_jc;                     /* ¤³¤ÎʸÀá¤Îɾ²ÁÃÍ */
  int son_v;                    /* ¤³¤Î¾®Ê¸Àá¤Þ¤Ç¤Îɾ²ÁÃͤιç·× */
  struct jdata *jentptr;        /* ¼­½ñ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  int t_jc;                     /* Éʻ졢ÉÑÅÙ¾ðÊó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ */
  int kangovect;                /* Àܳ¥Ù¥¯¥È¥ë¥Æ¡¼¥Ö¥ë¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ */
  int hinsi_fk;                 /* ´´¸ì¤ÎÉÊ»ìNo.(Ê£¹çÉÊ»ì¤ò´Þ¤à) */
  short kbcnt;                  /* ÂçʸÀáÃæ¤Ç²¿¾®Ê¸ÀáÌܤ« */
  short reference;              /* ¤³¤Î¾®Ê¸Àá¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¿ô */
  short status;                 /* Á°¤ÎʸÀá¤ÈÀܳ¤Ç¤­¤ë¤« */
  short status_bkwd;            /* ¸å¤ÎʸÀá¤È¤ÈÀܳ¤Ç¤­¤ë¤« */
};

struct BZD
{
  struct BZD *lnk_br;           /* ¾¤ÎÂçʸÀá¸õÊä */
  struct BZD *lnk_son;          /* ¼¡¤ÎÂçʸÀá¤Ø¤Î pointer */
  short j_c;                    /* ´´¸ì top index */
  short bend_m;                 /* ¤³¤ÎÂçʸÀá¤Î end char index */
  int v_jc;                     /* ¤³¤ÎÂçʸÀá¤Îɾ²ÁÃÍ */
  int son_v;                    /* ¼¡¤ÎÂçʸÀá¤Îɾ²ÁÃÍ */
  struct SYO_BNSETSU *sbn;      /* ÀèƬ¤Î¾®Ê¸Àá */
  short sbn_cnt;                /* ¤³¤ÎÂçʸÀá¤ò¹½À®¤¹¤ë¾®Ê¸Àá¤Î¿ô */
  short kbcnt;                  /* ¤³¤ÎÂçʸÀá¤ÎÁ°¤Ë²¿Ê¸Àá²òÀϤ·¤¿¤«  */
};

struct JKT_SONE
{
  struct JKT_SONE *lnk_br;      /* ¾¤Î¾®Ê¸Àá¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  short i_jc;                   /* ´´¸ì end index */
  short v_jc;                   /* ¤³¤ÎʸÀá¤Îɾ²ÁÃÍ */
  struct jdata *jentptr;        /* ¼­½ñ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  int t_jc;                     /* Éʻ졢ÉÑÅÙ¾ðÊó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ */
  int hinsi_fk;                 /* ´´¸ì¤ÎÉÊ»ìNo.(Ê£¹çÉÊ»ì¤ò´Þ¤à) */
  short status_bkwd;            /* ¸å¤ÎʸÀá¤È¤ÈÀܳ¤Ç¤­¤ë¤« */
};

struct JKT_SBN
{
  struct JKT_SBN *lnk_br;       /* ¾¤Î¾®Ê¸Àá¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  struct JKT_SBN *parent;       /* °ì¤ÄÁ°¤Î¾®Ê¸Àá¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  short j_c;                    /* ´´¸ì top index */
  short bend_m;                 /* ¾®Ê¸Àá end char index */
  struct JKT_SONE *sbn;         /* ¾¤Î¾®Ê¸Àá¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  int kangovect;                /* Àܳ¥Ù¥¯¥È¥ë¥Æ¡¼¥Ö¥ë¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ */
  short kbcnt;                  /* ÂçʸÀáÃæ¤Ç²¿¾®Ê¸ÀáÌܤ«  */
  short reference;              /* ¤³¤Î¾®Ê¸Àá¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¿ô */
  short status;                 /* Á°¤ÎʸÀá¤ÈÀܳ¤Ç¤­¤ë¤« */
};

struct JKT_DBN
{
  struct JKT_DBN *lnk_br;       /* ¾¤Î¾®Ê¸Àá¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  short j_c;                    /* ´´¸ì top index */
  short bend_m;                 /* ¾®Ê¸Àá end char index */
  struct JKT_SBN *sbn;          /* ¾¤Î¾®Ê¸Àá¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  int v_jc;                     /* ºÇÂçɾ²Á¤Îɾ²ÁÃÍ */
  short sbn_cnt;                /* ¤³¤ÎÂçʸÀá¤ò¹½À®¤¹¤ë¾®Ê¸Àá¤Î¿ô */
};

struct DSD_SBN
{
  short bun_m;                  /* ¸õÊäʸÀá¤Î end char index */
  short bun_jc;                 /* ¸õÊäʸÀá¤Î top char index */
  short i_jc;                   /* ¸õÊäʸÀá¤Î¼«Î©¸ì end char index */
  struct jdata *jentptr;        /* ¸õÊäʸÀá¤Î¼­½ñ entry pointer */
  int t_jc;                     /* ¸õÊ伫Ω¸ì¤ÎÉÊ»ì & ÉÑÅÙ index */
  int hinsi;                    /* ÉÊ»ì */
  int kangovect;                /* Àܳ¥Ù¥¯¥È¥ë¥Æ¡¼¥Ö¥ë¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ */
  int v_jc;                     /* ¾®Ê¸Àá¤Îɾ²ÁÃÍ */
  short status;                 /* Á°¤ÎʸÀá¤ÈÀܳ¤Ç¤­¤ë¤« */
  short status_bkwd;            /* ¸å¤ÎʸÀá¤È¤ÈÀܳ¤Ç¤­¤ë¤« */
};

struct DSD_DBN
{
  short bun_m;                  /* ¸õÊäʸÀá¤Î end char index */
  short bun_jc;                 /* ¸õÊäʸÀá¤Î top char index */
  struct DSD_SBN *sbn;          /* ¾®Ê¸Àá²òÀÏ·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿ */
  short sbncnt;                 /* ¾®Ê¸Àá¿ô (¼¡¸õÊä¤Î¾ì¹ç¤Ï¡¢¼¡¸õÊä¿ô)
                                   DSD_SBN¤Ï¡¢*sbn ¤«¤é sbncnt ¤À¤±¤¢¤ë */
  int v_jc;                     /* ÂçʸÀá¤Îɾ²ÁÃÍ */
};

#ifdef  nodef                   /* move to jslib.h */
/* µ¿»÷ʸÀá¤ÎľÁ°¤ËÁªÂò¤·¤¿¸õÊä */
#define HIRAGANA        -1      /* ¤Ò¤é¤¬¤Ê */  /* ÆÉ¤ß¤Î¤Þ¤Þ */
#define KATAKANA        -11     /* ¥«¥¿¥«¥Ê */
/* ¿ô»ú */
#define NUM_HAN         -2      /* Ⱦ³Ñ¿ô»ú */  /* ÆÉ¤ß¤Î¤Þ¤Þ */
#define NUM_ZEN         -12     /* Á´³Ñ¿ô»ú */  /* £±£²£³ */
#define NUM_KAN         -13     /* ´Á¿ô»ú */    /* °ìÆó»° */
#define NUM_KANSUUJI    -15     /* ´Á¿ô»ú */    /* É´Æó½½»° */
#define NUM_KANOLD      -16     /* ´Á¿ô»ú */    /* °íÉ´Æõ½¦»² */
#define NUM_HANCAN      -17     /* Ⱦ³Ñ¿ô»ú */  /* 1,234 */
#define NUM_ZENCAN      -18     /* Á´³Ñ¿ô»ú */  /* £±¡¤£²£³£´ */
/* 񥨓 */
#define ALP_HAN         -4      /* Ⱦ³Ñ */      /* ÆÉ¤ß¤Î¤Þ¤Þ */
#define ALP_ZEN         -30     /* Á´³Ñ */
/* µ­¹æ */
#define KIG_HAN         -5      /* Ⱦ³Ñ */      /* ÆÉ¤ß¤Î¤Þ¤Þ */
#define KIG_JIS         -40     /* Á´³Ñ(JIS) */
#define KIG_ASC         -41     /* Á´³Ñ(ASC) */
#endif

#define YES             1
#define NO              0
#define UN_KNOWN        -1

#define NOTHING         0

#endif /* JSERVER_DDEFINE_H */