File: pat.h

package info (click to toggle)
chasen 2.0-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 20,148 kB
  • ctags: 1,075
  • sloc: ansic: 10,112; perl: 408; lisp: 405; makefile: 287; sh: 55
file content (119 lines) | stat: -rw-r--r-- 3,958 bytes parent folder | download
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#define DEBUGn

#ifdef patDEBUG
#define OI(x) {printf("< %d >\n",x);fflush(stdout);} /* Output Integer */ /*ǥХ*/
#define OS(x) {printf("[ %s ]\n",x);fflush(stdout);} /* Output String */
#define OS2(x) {printf("%s\n",x);fflush(stdout);} /* Output String */
#define OM(x) {printf("Message: " #x "\n");fflush(stdout);} /* Output Message */
#define OL(x) {printf(#x);fflush(stdout);} /* Output Label */
#else
#define OI(x)  /* */
#define OS(x)  /* */
#define OS2(x) /* */
#define OM(x)  /* */
#define OL(x)  /* */
#endif

#include <sys/types.h>
#include <sys/stat.h>
#ifndef NO_MMAP
#include <sys/mman.h>
#endif

#ifdef _WIN32
typedef unsigned char * caddr_t;
#endif /* _WIN32 */

#define MAX_DIC_NUMBER 5 /* Ʊ˻Ȥ뼭οξ (ChaSen) */
#define SIKII_BIT 16  /* ʸʸζڤϲӥå? (8 or 16) */

#if !defined(_WIN32)
#define O_BINARY 0
#endif

/* ǥåѤΥꥹȷ */
typedef struct pat_index_list {
  struct pat_index_list *next; /* Ĥ */
  long index; /* եΥǥå */
} pat_index_list;

/* ΡɤΥǡ¤ */
typedef struct pat_node {
  pat_index_list il; /* ǥåΥꥹ */
  short checkbit; /* åӥåȤλꡣ(ܤΥӥå?) */
#if 0
  char *str; /* ȥ饤ȤƤĤ˺ɬפʸ¸ 960919 */
#endif
  struct pat_node *right; /* ؤޤޡ */
  struct pat_node *left; /* ؤޤޡ */
} pat_node;

/* MMAPѤΤμ   äԤ */
typedef struct _dic_t {
  int used;
  int fd;
  off_t size;
  caddr_t addr;
} dic_mmap_info;


/*** ChaSenϢ ***/
extern pat_node tree_top[MAX_DIC_NUMBER]; /* ڤΤͤä οȤ */
extern FILE *dic_file[MAX_DIC_NUMBER]; /* ڤΤȥǡ(ե) */
extern dic_mmap_info dicinfo[MAX_DIC_NUMBER]; /* MMAPΤμ */
extern int number_of_tree; /* Ѥ뼭(ѥ)ο */

/**************************
 * ؿΥץȥ *
 **************************/ 
/* pat.c */
extern void pat_init_tree_top(); /* ѥȥꥷڤκν */
extern pat_node *pat_search(); /* ѥȥꥷڤǸ */
extern pat_node *pat_search4insert(); /* Ѹ */
extern void pat_insert(); /* ѥȥꥷڤ */
extern int pat_bits(); 
         /* ʸλꤵ줿֤ΥӥåȤ֤ */
         /* 960918  strlrn()Τ̵̤Ǥ뤳ȤȽ */
extern void show_pat(); /* ѥȥꥷڥǡ */
extern char *get_line(); /* ꤵ줿꤫'\n'ޤɤ */

/* patfile.c */
extern void com_s(); /* ִϢ */
extern void com_l(); /* ɴϢ */
extern pat_node *malloc_pat_node(); /* Matomete malloc */
extern pat_index_list *malloc_pat_index_list(); /* Matomete malloc */

/* morph.c */
extern void jisyohiki(); /*  */
extern void insert_dic_data(); /* ǡ*/

/************************************************************************
* 
* pat --- ѥȥꥷڤõ
* 
* : Ĥ(tatuo-y@is.aist-nara.ac.jp)
* 
* Ū: ѥȥꥷڤõԤ
* 
* ʸ: 
*   르ꥺΤʸ[1]򻲾ȤCǤμ
*   ʸ[2]Υץ򻲹ͤˤ
* [1] R. Sedgewick  ʿ顢ƣϡĸ 
*     르ꥺ (Algorithms) 2 2 õʸ󡦷׻
*     ʳؼ,1992. (B195-2,pp.68-72)
* [2] 졢ͭ߷ʿѡ§ ԽѰ
*     르ꥺ༭ŵ
*     Ωdz,1994. (D74,pp.624-625)
* 
* :
*   1996/04/09  ư! (ǡκĹ8bit[2])
*           10  ϥ롼Ƶ˲ɡʸǡб(Ĺ̵)
*           30  /ɵǽΡɤΥǡ¤IDֹɲ()
*         5/06  ʬڤǡϽ
*         6/11  ChaSenμѤ˲¤
*           21  ϢƳ(INDEX򥭥å夹)
*         7/01  ʣμե(ѥ)鸡Ǥ褦ˤ
* 
* : ChaSenμѤ
* 
************************************************************************/