2
* hash.h -- define hash table entries, sizes, hash function...
6
* We reserve no LEGAL rights to the Purdue Compiler Construction Tool
7
* Set (PCCTS) -- PCCTS is in the public domain. An individual or
8
* company may do whatever they wish with source code distributed with
9
* PCCTS or the code generated by PCCTS, including the incorporation of
10
* PCCTS, or its output, into commerical software.
12
* We encourage users to develop software with PCCTS. However, we do ask
13
* that credit is given to us for developing PCCTS. By "credit",
14
* we mean that if you incorporate our source code into one of your
15
* programs (commercial product, research project, or otherwise) that you
16
* acknowledge this fact somewhere in the documentation, research report,
17
* etc... If you like PCCTS and have developed a nice tool with the
18
* output, please mention that you developed it using PCCTS. In
19
* addition, we ask that this header remain intact in our source code.
20
* As long as these guidelines are kept, we expect to continue enhancing
21
* this system and expect to make other tools available as they are
26
* Parr Research Corporation
27
* with Purdue University and AHPCRC, University of Minnesota
31
/* H a s h T a b l e S t u f f */
34
#define HashTableSize 553
39
#define StrTableSize 1000000
45
#define StrTableSize 655200
50
#define StrTableSize 1000000
53
typedef struct _entry { /* Minimum hash table entry -- superclass */
58
/* Hash 's' using 'size', place into h (s is modified) */
59
#define Hash(s,h,size) \
60
{while ( *s != '\0' ) h = (h<<1) + *s++; \
64
Entry *hash_get(Entry **, char *),
66
*hash_add(Entry **, char *, Entry *);
68
void killHashTable(Entry **);
71
Entry *hash_get(), **newHashTable(), *hash_add();
72
void killHashTable(); /* MR9 23-Sep-97 */