/*
-** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000.
+** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
** See ../LICENSE for license information.
**
*/
# ifndef MAPPING_H
# define MAPPING_H
-typedef struct _mappair {
+typedef struct s_mappair {
lsymbol domain, range;
- /*@null@*/ struct _mappair *next;
+ /*@null@*/ struct s_mappair *next;
} mappair;
typedef /*@relnull@*/ /*@only@*/ mappair *o_mappair;
-typedef struct {
+typedef /*@abstract@*/ struct {
unsigned int count;
/*@relnull@*/ /*@only@*/ o_mappair *buckets;
-} mapping;
+} *mapping;
-extern /*@only@*/ mapping *mapping_create (void);
-extern lsymbol mapping_find (mapping *p_t, lsymbol p_domain);
-extern void mapping_bind (mapping *p_t, lsymbol p_domain, lsymbol p_range);
-extern void mapping_free (/*@only@*/ mapping *p_m);
+extern /*@only@*/ mapping mapping_create (void);
+extern lsymbol mapping_find (mapping p_t, lsymbol p_domain);
+extern void mapping_bind (mapping p_t, lsymbol p_domain, lsymbol p_range);
+extern void mapping_free (/*@only@*/ mapping p_m);
# else
# error "Multiple include"