]>
Commit | Line | Data |
---|---|---|
885824d3 | 1 | /* |
2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. | |
3 | ** See ../LICENSE for license information. | |
4 | ** | |
5 | */ | |
6 | /* | |
7 | ** mapping.h | |
8 | */ | |
9 | ||
10 | # ifndef MAPPING_H | |
11 | # define MAPPING_H | |
12 | ||
13 | typedef struct _mappair { | |
14 | lsymbol domain, range; | |
15 | /*@null@*/ struct _mappair *next; | |
16 | } mappair; | |
17 | ||
18 | typedef /*@relnull@*/ /*@only@*/ mappair *o_mappair; | |
19 | ||
20 | typedef struct { | |
21 | unsigned int count; | |
22 | /*@relnull@*/ /*@only@*/ o_mappair *buckets; | |
23 | } mapping; | |
24 | ||
25 | ||
26 | extern /*@only@*/ mapping *mapping_create (void); | |
27 | extern lsymbol mapping_find (mapping *p_t, lsymbol p_domain); | |
28 | extern void mapping_bind (mapping *p_t, lsymbol p_domain, lsymbol p_range); | |
29 | extern void mapping_free (/*@only@*/ mapping *p_m); | |
30 | ||
31 | # else | |
32 | # error "Multiple include" | |
33 | # endif |