Logo Search packages:      
Sourcecode: c2man version File versions  Download package

symbol.h

/* $Id: symbol.h,v 2.0.1.2 1993/08/31 05:04:35 greyham Exp $
 *
 * Definitions for a symbol table
 */
#include "config.h"

#ifndef _SYMBOL_H
#define _SYMBOL_H

typedef struct _symbol {
    struct _symbol *next;     /* next symbol in list */
    char *name;               /* name of symbol */
    unsigned short flags;     /* symbol attributes */

      enum { SYMVAL_NONE, SYMVAL_ENUM } valtype;
      
      union {
          struct _enumerator_list *enum_list;
      } value;
} Symbol;

/* The hash table length should be a prime number. */
#define SYM_MAX_HASH 251

typedef struct _symbol_table {
      Symbol *bucket[SYM_MAX_HASH]; /* hash buckets */
} SymbolTable;

/* Create symbol table */
extern SymbolTable *create_symbol_table();

/* destroy symbol table */
extern void destroy_symbol_table _((SymbolTable *symtab));

/* Lookup symbol name */
extern Symbol *find_symbol _((SymbolTable *symtab, char *name));

/* Define new symbol */
extern Symbol *new_symbol _((SymbolTable *symtab, char *name, int flags));

#endif

Generated by  Doxygen 1.6.0   Back to index