home *** CD-ROM | disk | FTP | other *** search
/ Boldly Go Collection / version40.iso / TS / 17A / DRWIN101.ZIP / SYMBOL.H < prev    next >
C/C++ Source or Header  |  1991-04-15  |  2KB  |  42 lines

  1. #ifndef _SYMBOL_INCLUDED_
  2. #define _SYMBOL_INCLUDED_
  3.  
  4. #ifndef BYTE
  5.   #define BYTE unsigned char
  6. #endif
  7.  
  8. #define MAXHASH 0x20                   /*number of hash entries*/
  9.  
  10. typedef struct symrecst {
  11.   struct symrecst *prv;                /*pointer to previous*/
  12.   struct symrecst *nxt;                /*pointer to next symbol*/
  13.   BYTE rec[1];                         /*name (actually entire user's record)*/
  14. } symrec;
  15.  
  16. typedef int (*symcmpf)(void *s1,void *s2);
  17.  
  18. typedef struct symtabst {
  19.   int siz;                             /*size of each record*/
  20.   int num;                             /*number of records entered so far*/
  21.   symcmpf cmp;                         /*compare function (1>,0=,-1<)*/
  22.   symrec *sym;                         /*pointer to first symbol*/
  23.   symrec *cur;                         /*pointer to current symbol*/
  24. } symtab;
  25.  
  26.  
  27. symtab *symopen(int sz,symcmpf cf);    /*opens symbol table*/
  28. void symclose(symtab *st);             /*closes symbol table*/
  29. void *symfind(symtab *st,void *rec);   /*finds symbol in table*/
  30. void *symins(symtab *st,void *rec);    /*inserts symbol into the table*/
  31. void *symdel(symtab *st,void *rec);    /*deletes symbol from table*/
  32. void *symfirst(symtab *st);            /*returns first symbol record*/
  33. void *symcurr(symtab *st);             /*returns current symbol pointer*/
  34. void *symnext(symtab *st);             /*returns next symbol record*/
  35. void *symprev(symtab *st);             /*returns previous symbol record*/
  36. void *symlast(symtab *st);             /*returns pointer to last record*/
  37. void *symsucc(symtab *st,void *rec);   /*returns pointer to successor of rec*/
  38. void *sympred(symtab *st,void *rec);   /*returns pointer to rec's predecessor*/
  39. int  symnum(symtab* st);               /*returns number of recs in table*/
  40.  
  41. #endif                                 /*if symbol.h not already included*/
  42.