📄 wngrind.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 + -