/* * =================================================================== * hashtable.h : Data Structures and Functions for Hash Table * * Copyright (C) 1993-96 by Mark Austin and David Mazzoni. * * This software is provided "as is" without express or implied warranty. * Permission is granted to use this software on any computer system, * and to redistribute it freely, subject to the following restrictions: * * 1. The authors are not responsible for the consequences of use of * this software, even if they arise from defects in the software. * 2. The origin of this software must not be misrepresented, either * by explicit claim or by omission. * 3. Altered versions must be plainly marked as such, and must not * be misrepresented as being the original software. * 4. This notice is to remain intact. * * Written by: Mark Austin October 1993 * =================================================================== */ #ifndef HASHTABLE_H #define HASHTABLE_H /* Data Structure for Hash Table Node */ #include "aiscsection.h" typedef enum { DoubleValue = 1, AiscSection = 2, } NODETYPE; typedef struct HashTableNode { char *cpName; NODETYPE eType; union{ double dValue; /* Store a number */ AISCSECTION * spAisc; /* Store AISC Section */ } uNode; struct HashTableNode *spNext; } HASHNODE; /* External Interface for Hash Table Functions */ #ifdef __STDC__ HASHNODE * hashTableInstall(); HASHNODE * hashTableLookup(); void hashTablePrint(); #else /* start case not STDC */ HASHNODE * HashTableInstall(); HASHNODE * HashTableLookup(); void HashTablePrint(); #endif /* end case not STDC */ #endif