/*  File: dict.h
 *  Author: Richard Durbin (rd@sanger.ac.uk)
 *  Copyright (C) J Thierry-Mieg and R Durbin, 1995
 *-------------------------------------------------------------------
 * This file is part of the ACEDB genome database package, written by
 * 	Richard Durbin (MRC LMB, UK) rd@mrc-lmb.cam.ac.uk, and
 *	Jean Thierry-Mieg (CRBM du CNRS, France) mieg@kaa.cnrs-mop.fr
 *
 * Description: public header for cut-out lex package in dict.c
 * Exported functions:
 * HISTORY:
 * Last edited: Dec  4 14:50 1998 (fw)
 * Created: Tue Jan 17 17:34:44 1995 (rd)
 *-------------------------------------------------------------------
 */

/* @(#)dict.h	1.4 9/16/97 */
#ifndef DICT_H
#define DICT_H

#include "regular.h"

	/* The DICT structure is private to lexhash.c
	   DO NOT LOOK AT OR TOUCH IT IN CLIENT CODE!!
	   Only use it via the subroutine interface.
	*/

typedef struct {
  int dim ;
  int max ;
  Array table ;			/* hash table */
  Array names ;			/* mark in text Stack per name */
  Stack nameText ;		/* holds names themselves */
} DICT ;

DICT *dictCreate (int size) ;
DICT *dictHandleCreate (int size, STORE_HANDLE handle) ;
void uDictDestroy (DICT *dict) ;
#define dictDestroy(_dict) {uDictDestroy(_dict) ; _dict=0;}
BOOL dictFind (DICT *dict, char *s, int *ip) ;
BOOL dictAdd (DICT *dict, char *s, int *ip) ;
char *dictName (DICT *dict, int i) ;
int dictMax (DICT *dict) ;		/* 1 + highest index = number of names */
DICT *dictCopy (DICT *dict) ;

#endif /* ndef DICT_H */
/******* end of file ********/