home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pccts.zip / pccts / lang / Pascal / sym.h < prev    next >
C/C++ Source or Header  |  1994-03-31  |  949b  |  46 lines

  1. /* T e m p l a t e  F o r  S y m b o l  T a b l e  M a n a g e r */
  2.  
  3. /* define some hash function */
  4. #ifndef HASH
  5. #define HASH(p, h) while ( *p != '\0' ) h = (h<<1) + *p++;
  6. #endif
  7.  
  8. /*  Pascal symbol table record */
  9. typedef struct _sym {
  10.     char *symbol;
  11.     struct _sym *next, *prev, **head, *scope;
  12.     unsigned int hash;
  13.     struct _sym *link;
  14.     double value;        /* storage for constants */
  15.     int token;
  16.     int level;
  17. } Sym, *SymPtr;
  18.  
  19. #ifdef __STDC__
  20. void zzs_init(int, int);
  21. void zzs_done(void);
  22. void zzs_add(char *, Sym *);
  23. Sym *zzs_get(char *);
  24. void zzs_del(Sym *);
  25. void zzs_keydel(char *);
  26. Sym **zzs_scope(Sym **);
  27. Sym *zzs_rmscope(Sym **);
  28. void zzs_stat(void);
  29. Sym *zzs_new(char *);
  30. Sym *zzs_newadd(char *);
  31. char *zzs_strdup(char *);
  32. #else
  33. void zzs_init();
  34. void zzs_done();
  35. void zzs_add();
  36. Sym *zzs_get();
  37. void zzs_del();
  38. void zzs_keydel();
  39. Sym **zzs_scope();
  40. Sym *zzs_rmscope();
  41. void zzs_stat();
  42. Sym *zzs_new();
  43. Sym *zzs_newadd();
  44. char *zzs_strdup();
  45. #endif
  46.