/
cifst.hpp
137 lines (107 loc) · 4.1 KB
/
cifst.hpp
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#ifndef CIFST_HPP
#define CIFST_HPP
#include <cirec.hpp>
#if USE_GDBFMT
#include <mffunc.hpp>
#include <iffunc.hpp>
#endif
class _YOURCLASS FSTSTRU
{
public:
int cifstfix; /* key %8ld %5d %4d %4d */
int cifstfim; /* key %8ld w/ cifstfix */
LONGX fst_error; /* gener - fst spec error */
LONGX fst_errl; /* gener - fst spec line where error occured */
char *fst_errp; /* gener - fst spec ptr where error occured */
char *fst_fmtap; /* inter - default: no static format area */
LONGX fst_fmtby; /* inter - bytes for dynamic format area */
char fst_rdlm; /* inter - new occ delimiter */
char *fst_batchup; /* inter - batchp for fldupdat() area */
char *fst_batchp; /* inter - batchp for fldupdat() commands */
int fst_batch0; /* inter - batchp ^mmfn^oocc^ccnt^l1/2 option */
char fst_a351; /* inter - 351 */
UCHR *fst_fbuff[2]; /* writbsiz */
UWORD fst_fbsiz;
UWORD fst_fleft[2];
UWORD fst_ffree[2];
int fst_fd[2]; /* inter - file descriptor for .ln1/.ln2 */
LONGX fst_fx[2]; /* inter - output records to .ln1/.ln2 */
char *fst_hdrp; /* inter - hit file headers - area */
int fst_hdrx; /* inter - hit file headers - #bytes allocated */
int fst_hdru; /* inter - hit file headers - #bytes used */
int fst_hdrt; /* inter - hit file headers - for area+^m^t^o^c */
char *fst_wlupifnp; /* inter - word lookup I/F for TW processing */
TRMSTRU *fst_wluptrmp; /* inter - word lookup I/F for TW processing */
LONGX *fst_wlupitrm; /* inter - word lookup I/F for TW processing */
FST_CODE *fst_pgmp; // inter
char *fst_stwp; // inter
int fst_nstws; // inter
char *fst_area1p; // inter
LONGX fst_maxlk1; // inter
char *fst_area2p; // inter
LONGX fst_maxlk2; // inter
LONGX fst_qtylk1; // inter
LONGX fst_qtylk2; // inter
char *fst_oarea1p; // inter
char *fst_oarea2p; // inter
LONGX fst_oqtylk1; // inter
LONGX fst_oqtylk2; // inter
#if USE_GDBFMT
MST_FILE *fst_mst;
BTREE *fst_btree;
#endif
RECSTRU *fst_recp;
CISISX *cisisxp;
FSTSTRU (CISISX *parm_cisisxp, char *gidbnp, char *fstfile, char *stwfile,
#if USE_GDBFMT
MST_FILE *mst, BTREE *btree,
#endif
LONGX maxlk1,LONGX maxlk2,int instream=0, int stw_instream=0);
~FSTSTRU(void);
char * xfst_loadfst(char *gidbnp,char *file,int instream=0);
char * xfst_loadstw(char *gidbnp,char *file, int *nstwsp, int instream=0);
RECSTRU * xfst_getrecp(void);
void xfst_setrecp(RECSTRU *recp);
char * xfst_batch(LONGX nbytes, int option);
LONGX xfst_gener(char *fstspecp);
LONGX xfst_inter(int bwcase=0);
void xfst_free(void);
int xfst_link(char *pfxp,
int plen,
char *keyp,
int klen,
LONGX mfn,
UWORD tag,
UWORD occ,
UWORD cnt,
char *lk1p,
char *lk2p,
LONGX *lft1,
LONGX *lft2);
int xfst_writ(int treecase,
LONGX mfn,
UWORD tag,
UWORD occ,
UWORD cnt,
char *keyp,
int keylen,
UCHR *uctabp);
int xfst_open(char *gidbnp, char *filnamp,
int treecase);
int xfst_clos(int treecase);
void xpstdecod(POSTSTRU *pst,
LONGX *mfn,
UWORD *tag,
UWORD *occ,
UWORD *cnt);
void xprtlink(char *stubp,
LONGX pmfn,
UWORD ptag,
UWORD pocc,
UWORD pcnt,
UCHR *keyp,
int len);
char * xloadmemstw(char *memp,
int *nstws);
};
#endif // CIFST_HPP