]> andersk Git - splint.git/blob - src/Headers/annotationTable.h
Updated html and word versions of the manual
[splint.git] / src / Headers / annotationTable.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
4 */
5 /*
6 ** annotationTable.h
7 **
8 ** A global table that keeps information on the user-defined annotations.
9 **
10 ** For each annotation, we need:
11 **
12 **    o [key] A name (matches @name@ in code)
13 **    o State - index into metaStateTable that identifies the state associated with this annotation
14 **    o Value 
15 **    o Context information (where can annotation be used)
16 */
17
18 # ifndef ANNOTTABLE_H
19 # define ANNOTTABLE_H
20
21 /*@constant null annotationTable annotationTable_undefined; @*/
22 # define annotationTable_undefined genericTable_undefined
23
24 extern /*@falsewhennull@*/ bool annotationTable_isDefined(annotationTable) /*@*/ ;
25 # define annotationTable_isDefined(p_h) (genericTable_isDefined ((genericTable) (p_h)))
26
27 extern /*@nullwhentrue@*/ bool annotationTable_isUndefined(annotationTable) /*@*/ ;
28 # define annotationTable_isUndefined(p_h) (genericTable_isDefined ((genericTable) (p_h)))
29
30 /*@constant int DEFAULT_ANNOTTABLE_SIZE@*/
31 # define DEFAULT_ANNOTTABLE_SIZE 32
32
33 extern /*@only@*/ annotationTable annotationTable_create (void) /*@*/ ;
34 # define annotationTable_create() ((annotationTable) genericTable_create (DEFAULT_ANNOTTABLE_SIZE))
35
36 extern void annotationTable_insert (annotationTable p_h, /*@only@*/ annotationInfo p_annotation);
37
38 extern /*@null@*/ /*@dependent@*/ /*@exposed@*/ annotationInfo
39    annotationTable_lookup (annotationTable p_h, cstring p_key) /*@*/ ;
40 /*@access annotationInfo@*/
41 # define annotationTable_lookup(p_h,p_key) \
42   ((annotationInfo) genericTable_lookup ((genericTable) (p_h), p_key))
43 /*@noaccess annotationInfo@*/
44
45 extern bool annotationTable_contains (annotationTable p_h, cstring p_key) /*@*/ ;
46 # define annotationTable_contains(p_h,p_key) \
47   (genericTable_contains ((genericTable) (p_h), p_key))
48
49 extern /*@unused@*/ /*@only@*/ cstring annotationTable_stats(annotationTable p_h);
50 # define annotationTable_stats(p_h) genericTable_stats ((genericTable) (p_h))
51
52 extern /*@only@*/ cstring annotationTable_unparse (annotationTable p_h);
53
54 extern void annotationTable_free (/*@only@*/ annotationTable p_h);
55 # define annotationTable_free(p_h) (genericTable_free ((genericTable) (p_h)))
56
57 /*@iter annotationTable_elements (sef annotationTable p_g, 
58                                   yield exposed cstring m_key, 
59                                   yield exposed annotationInfo m_el) @*/
60
61 # define annotationTable_elements(p_g,m_key,m_el) \
62             genericTable_elements((genericTable) (p_g), m_key, m_el) 
63 # define end_annotationTable_elements end_genericTable_elements
64
65 extern int annotationTable_size (annotationTable p_h);
66 # define annotationTable_size(p_h) (genericTable_size(p_h))
67
68 # else
69 # error "Multiple include"
70 # endif 
71
72
73
74
This page took 0.04206 seconds and 5 git commands to generate.