2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
3 ** See ../LICENSE for license information.
10 ** key -> (int x int -> int x cstring)
11 ** e.g., "null" -> null x notnull -> error x "attempt to ..."
14 # ifndef VALUEMATRIX_H
15 # define VALUEMATRIX_H
18 abst_typedef genericTable valueMatrix;
21 /*@constant null valueMatrix valueMatrix_undefined; @*/
22 # define valueMatrix_undefined genericTable_undefined
24 extern /*@falsenull@*/ bool valueMatrix_isDefined(valueMatrix) /*@*/ ;
25 # define valueMatrix_isDefined(p_h) (genericTable_isDefined ((genericTable) (p_h)))
27 extern /*@truenull@*/ bool valueMatrix_isUndefined(valueMatrix) /*@*/ ;
28 # define valueMatrix_isUndefined(p_h) (genericTable_isDefined ((genericTable) (p_h)))
30 extern /*@only@*/ valueMatrix valueMatrix_create(int p_size);
31 # define valueMatrix_create(p_s) ((valueMatrix) genericTable_create (p_s))
33 extern void valueMatrix_insert (valueMatrix p_h, /*@dependent@*/ cstring p_key,
34 /*@only@*/ stateCombinationTable p_value);
36 # define valueMatrix_insert(p_h,p_key,p_value) \
37 (genericTable_insert ((valueMatrxi) (p_h), p_key, (void *) (p_value)))
39 extern /*@null@*/ /*@dependent@*/ /*@exposed@*/ stateCombinationTable valueMatrix_lookup (valueMatrix p_h, cstring p_key) /*@*/ ;
40 # define valueMatrix_lookup(p_h,p_key) \
41 ((stateCombinationTable) genericTable_lookup ((genericTable) (p_h), p_key))
43 extern /*@unused@*/ /*@only@*/ cstring valueMatrix_stats(valueMatrix p_h);
44 # define valueMatrix_stats(p_h) genericTable_stats ((genericTable) (p_h))
46 extern void valueMatrix_free (/*@only@*/ valueMatrix p_h);
47 # define valueMatrix_free(p_h) (genericTable_free ((genericTable) (p_h)))
49 extern void valueMatrix_remove (valueMatrix p_h, cstring p_key) /*@modifies p_h@*/ ;
50 # define valueMatrix_remove(p_h,p_key) (genericTable_remove ((genericTable) (p_h), p_key))
52 /*@iter valueMatrix_elements (sef valueMatrix p_g, yield exposed cstring m_key, yield exposed stateCombinationTable m_el)@*/
54 # define valueMatrix_elements(p_g,m_key,m_el) genericTable_elements((genericTable) (p_g), m_key, m_el)
55 # define end_valueMatrix_elements end_genericTable_elements
57 extern int valueMatrix_size (valueMatrix p_h);
58 # define valueMatrix_size(p_h) (genericTable_size(p_h))
61 # error "Multiple include"