/* File: dict.h * Author: Richard Durbin (rd@sanger.ac.uk) * Copyright (C) J Thierry-Mieg and R Durbin, 1995 * ------------------------------------------------------------------- * Acedb is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * or see the on-line version at http://www.gnu.org/copyleft/gpl.txt * ------------------------------------------------------------------- * 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 */ int newPos ; } 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) ; void dictClear (DICT *dict) ; #endif /* ndef DICT_H */ /******* end of file ********/