]> andersk Git - splint.git/blob - src/Headers/flagSpec.h
79019b883f44d875c3febf94c43e2444162239ac
[splint.git] / src / Headers / flagSpec.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
4 **
5 */
6 /*
7 ** flagSpec.h
8 */
9
10 # ifndef flagSpec_H
11 # define flagSpec_H
12
13 /*@private@*/ typedef struct
14 {
15   cstring name;
16   flagcode code; 
17 } *flagSpecItem;
18
19 abst_typedef /*@null@*/ struct s_flagSpec *flagSpec;
20
21 struct s_flagSpec
22 {
23   flagSpecItem tspec;
24   /* combination logic if necessary */
25   /*@null@*/ /*@only@*/ flagSpec trest;
26 } ; 
27
28 /*@constant null flagSpec flagSpec_undefined; @*/
29 # define flagSpec_undefined  ((flagSpec) NULL)
30
31 extern /*@falsewhennull@*/ bool flagSpec_isDefined (flagSpec p_e) /*@*/ ;
32 # define flagSpec_isDefined(e)        ((e) != flagSpec_undefined)
33
34 extern /*@only@*/ flagSpec flagSpec_createPlain (/*@only@*/ cstring) ;
35 extern /*@only@*/ flagSpec 
36    flagSpec_createOr (/*@only@*/ cstring, /*@only@*/ flagSpec) ;
37
38 extern /*@only@*/ flagSpec flagSpec_copy (flagSpec) /*@*/ ;
39 extern /*@unused@*/ /*@only@*/ cstring flagSpec_unparse (flagSpec) /*@*/ ;
40 extern void flagSpec_free (/*@only@*/ flagSpec) ;
41
42 extern /*@only@*/ cstring flagSpec_dump (flagSpec) /*@*/ ;
43 extern /*@only@*/ flagSpec flagSpec_undump (char **p_s) /*@modifies p_s@*/ ;
44
45 extern flagcode flagSpec_getDominant (flagSpec) /*@*/ ;
46 extern flagcode flagSpec_getFirstOn (flagSpec, fileloc) /*@*/ ;
47
48 extern bool flagSpec_isOn (flagSpec, fileloc) /*@*/ ;
49
50 # else
51 # error "Multiple include"
52 # endif
53
54
55
56
This page took 0.168159 seconds and 3 git commands to generate.