⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wngrind.h

📁 一个与传统电子字典不同的字典
💻 H
字号:
/*  grind.h - grinder include file*//* $Id: wngrind.h,v 1.1 2005/02/01 17:58:21 wn Rel $ */#ifndef _GRIND_#include "wn.h"#ifndef NULL#define NULL	0#endif#define FALSE	0#define TRUE	1/* Bit positions for legalptrs[] */#define P_NOUN	1#define P_VERB	2#define P_ADJ	4#define P_ADV	8/* Pointer status values */#define UNRESOLVED	0#define RESOLVED	1#define DUPLICATE       2#define SELF_REF        3#define ALLWORDS	(short)0 #define NOSENSE		(unsigned char)0xff#ifdef FOOP#define HASHSIZE	100003	/* some large prime # */#endif#define HASHSIZE	500009	/* some large prime # */#define ptrkind(p)	arraypos(ptrsymbols, p)/* Structure for representing a synset */typedef struct synset {    struct synset *ssnext;	/* next synset */    struct synset *fans;	/* if adjective cluster head, list of fans				   if fan, pointer to cluster head */    struct synonym *syns;	/* list of synonyms in synset */    struct pointer *ptrs;	/* list of pointers from this synset */    struct framelist *frames;	/* for verbs - list of framelists */    char *defn;			/* textual gloss (optional) */    unsigned int key;		/* unique synset key */    unsigned char part;		/* part of speech */    unsigned char isfanss;	/* TRUE - synset is fan synset */    unsigned char filenum;	/* file number (from cmdline) synset is in */    int clusnum;		/* cluster # if synset is part of cluster */    int lineno;			/* line number in file of synset */    long filepos;		/* byte offset of synset in output file */} G_Ss, *G_Synset;		/* Grinder Synset *//* A pointer from one synset to another */typedef struct pointer {    struct pointer *pnext;	/* next pointer from synset */    struct symbol *pword;	/* word used to identify target synset */    struct symbol *pslite;	/* label of satellite pointed to (optional) */    struct synset *psynset;	/* target synset */    unsigned char pfilenum;	/* file containing target synset */    unsigned char psensenum;	/* sense number of word */    unsigned char pslite_sense; /* sense number of satellite (optional) */    unsigned char phead;	/* TRUE - pointer is to cluster head word */    unsigned char ptype;	/* pointer type */    unsigned char status;	/* status of pointer */    short fromwdnum;		/* word number in this synset ptr is from */    short towdnum;		/* word number in target synset ptr is to */} Ptr, *Pointer;/* Verb frame list */typedef struct framelist {    struct framelist *fnext;	/* next framelist */    unsigned long frames[(NUMFRAMES/32) + 1]; /* bits for verb frames */    unsigned char frwdnum;	/* word number that frame list is for */} Fr, *Framelist;/* A word in a synset */typedef struct synonym {    struct synonym *synnext;	/* next word in synset */    struct synset *ss;		/* synset this synonym is in */    struct symbol *word;	/* symbol table entry for word string */    short sswdnum;		/* word number in synset ( <0, headword ) */    short tagcnt;		/* num times sense is tagged in concordance */    unsigned char wnsensenum;	/* sense number in wn database */    unsigned char sensenum;	/* sense number in lexicographer's file */    unsigned char adjclass;	/* adjective class of word */    unsigned char infanss;	/* TRUE - synonym is in fan synset */				/* FALSE - synonym is not in fan */    char *label;		/* only used if string is not lowercase				   if lowercase, use word->label */} Syn, *Synonym;/* Structure for storing word strings */typedef struct symbol {    struct symbol *symnext;	/* next symbol in this slot */    struct synlist *syns;	/* uses of this word as a synonym */    unsigned char sensecnt[NUMPARTS + 1]; /* senses for all parts of speech */    char *label;		/* word */} Sym, *Symbol;/* List of use of this word as a synonym */typedef struct synlist {    struct synlist *snext;	/* next item on synonym list */    struct synonym *psyn;	/* pointer to synonym structure */} Synl, *SynList;typedef struct flist {    char *fname;		/* file name */    int present;		/* file entered on command line? */} Flist;extern Flist filelist[];extern int yylineno;extern G_Synset headss;extern int pcount;extern int errcount;extern int verifyflag;extern int nowarn;extern int ordersenses;extern int synsetkeys;extern char *ptrsymbols[];extern char *legalptrs;extern char *legalptrsets[];extern char *ptrreflects[];extern char **Argv;extern int Argc;extern FILE *logfile;extern char partprefix[];extern char partseen[];extern char *adjclass[];extern Symbol hashtab[];/* External functions */extern int arraypos(char **, char *);extern int filenum(char *);extern char *strclone(char *);extern char *strupper(char *);extern char *strlower(char *);extern char *PrintFileName(int);extern char *PrintPointer(Pointer);extern char *PrintSynonym(Synonym);extern char *NextFile();extern int filemode();extern G_Synset CreateSynset(unsigned char, Synonym, Pointer,		    Framelist, char *, unsigned int, int, unsigned char);extern Pointer CreatePointer(Symbol, Symbol, unsigned char,		      unsigned char, unsigned char, unsigned char,		      short, short);extern Synonym CreateSynonym(Symbol, unsigned char, short,		      unsigned char, char *);extern Framelist CreateFramelist(int);extern Symbol CreateSymbol(char *);extern Symbol FindSymbol(char *);extern void ResolvePointers();extern void FindOffsets();extern void DumpData();	extern void DumpIndex();extern void DumpSenseIndex();extern void ReadCntlist();#endif /* _GRIND_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -