]> andersk Git - splint.git/blob - src/Headers/environmentTable.h
EXtensive code clean up. Almost passes LCLint.
[splint.git] / src / Headers / environmentTable.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000.
3 ** See ../LICENSE for license information.
4 **
5 */
6 /*
7 ** environmentTable.h
8 */
9
10 # ifndef environmentTable_H
11 # define environmentTable_H
12
13
14 typedef struct environmentAt_ {
15   int max;
16   int min;
17 } * environmentAt;
18
19
20 typedef struct rangeAt_ {
21   int max;
22   int min;
23   bool isRelative;
24   bool unknown;
25   bool isReferenced;
26 }  rangeAt;
27
28
29 struct _environmentTable
30 {
31   int nelements;
32   int nspace;
33   /*@reldef@*/ /*@only@*/ e_sRef * keys;
34   /*@reldef@*/ /*@only@*/ o_sRefSet * values;
35   /*@reldef@*/ /*@only@*/ rangeAt *  rangeValues;
36 };
37
38
39
40 /* extern rangeAt getEnvironment (key); */
41 /* extern boolean inRange (int, range); */
42
43 /* extern void setMinium (key, min); */
44 /* extern void setMaximum (key, min); */
45
46 extern /*@unused@*/ /*@truenull@*/ bool environmentTable_isUndefined (environmentTable p_s);
47 extern /*@unused@*/ /*@truenull@*/ bool 
48   environmentTable_isEmpty (/*@sef@*/ environmentTable p_s);
49 extern /*@falsenull@*/ bool environmentTable_isDefined (environmentTable p_s);
50
51 /*@constant null environmentTable environmentTable_undefined; @*/
52 # define environmentTable_undefined      ((environmentTable) NULL)
53 # define environmentTable_isDefined(s)   ((s) != environmentTable_undefined)
54 # define environmentTable_isUndefined(s) ((s) == environmentTable_undefined)
55 # define environmentTable_isEmpty(s)     (environmentTable_size(s) == 0)
56
57 extern int environmentTable_size (/*@sef@*/ environmentTable p_s);
58 # define environmentTable_size(s)  (environmentTable_isDefined (s) ? (s)->nelements : 0)
59
60 /*@iter environmentTable_elements (sef environmentTable t, yield exposed sRef key, yield exposed sRefSet values); @*/
61 # define environmentTable_elements(t, m_key, m_value) \
62    { if (environmentTable_isDefined (t)) \
63      { int m_ind; sRef *m_keys = &((t)->keys[0]); \
64        sRefSet *m_values = &((t)->values[0]); \
65        for (m_ind = 0 ; m_ind < (t)->nelements; m_ind++) \
66          { sRef m_key = *(m_keys++); sRefSet m_value = *(m_values++);
67
68 # define end_environmentTable_elements }}}
69
70 //extern environmentTable environmentTable_new (void) /*@*/ ;
71
72 //extern void environmentTable_clearEnvironmentes (environmentTable p_s, sRef p_sr) 
73 //   /*@modifies p_s, p_sr@*/ ;
74
75 //extern /*@only@*/ sRefSet environmentTable_canEnvironment (environmentTable p_s, sRef p_sr) /*@*/ ;
76 //extern environmentTable environmentTable_copy (environmentTable p_s) /*@*/ ;
77  
78 //extern /*@only@*/ cstring environmentTable_unparse (environmentTable p_s) /*@*/ ;
79 //extern void environmentTable_free (/*@only@*/ environmentTable p_s) ;
80
81 //extern environmentTable 
82 //  environmentTable_addMustEnvironment (/*@returned@*/ environmentTable p_s, /*@exposed@*/ sRef p_sr, sRef p_al)
83 //  /*@modifies p_s@*/ ;
84
85 //  extern environmentTable
86 //    environmentTable_levelUnion (/*@returned@*/ environmentTable p_t1, environmentTable p_t2, int p_level) 
87 //    /*@modifies p_t1@*/ ;
88
89 //  extern environmentTable 
90 //    environmentTable_levelUnionNew (environmentTable p_t1, environmentTable p_t2, int p_level) 
91 //    /*@modifies nothing*/ ;
92
93 //  extern void environmentTable_checkGlobs (environmentTable p_t) /*@modifies g_msgstream@*/ ;
94 //  extern /*@only@*/ sRefSet environmentTable_environmentedBy (environmentTable p_s, sRef p_sr) /*@*/ ;
95 //  extern void environmentTable_fixSrefs (environmentTable p_s);
96 //  extern environmentTable environmentTable_levelUnionSeq (/*@returned@*/ environmentTable p_t1, 
97 //                                          /*@only@*/ environmentTable p_t2, int p_level);
98
99
100 //  extern environmentTable
101 //  environmentTable_addRelativeRange (/*@returned@*/ environmentTable p_s,
102 //                       /*@exposed@*/ sRef p_sr);
103 //  exprNode exprNode_mergeEnvironments (exprNode p_ret, exprNode p_e1, exprNode p_e2);
104
105                      
106 //  extern void 
107 //  environmentTable_testInRange ( environmentTable p_s,  /*@exposed@*/ sRef p_sr, int p_index);
108
109
110 /*@constant int environmentTableBASESIZE; @*/
111 # define environmentTableBASESIZE MIDBASESIZE
112
113 # else
114 # error "Multiple include"
115 # endif
116
117
118
119
This page took 0.100946 seconds and 5 git commands to generate.