]> andersk Git - splint.git/blob - src/Headers/constraintExprData.h
EXtensive code clean up. Almost passes LCLint.
[splint.git] / src / Headers / constraintExprData.h
1 #ifndef __constraintExprData_h__
2
3 #define __constraintExprData_h__
4
5
6 typedef enum
7 {
8   BINARYOP_UNDEFINED,
9   PLUS,
10   MINUS
11 }
12 constraintExprBinaryOpKind;
13
14 typedef enum
15 {
16   UNARYOP_UNDEFINED,
17  VALUE, CALLSAFE,
18  MAXSET, MINSET, MAXREAD, MINREAD,
19  NULLTERMINATED
20  }
21 constraintExprUnaryOpKind;
22
23
24 typedef struct constraintExprBinaryOp_
25 {
26   constraintExpr expr1;
27   constraintExprBinaryOpKind binaryOp;
28   constraintExpr expr2;
29 } constraintExprBinaryOp;
30
31
32 typedef struct constraintExprUnaryOp_
33 {
34   constraintExpr expr;
35   constraintExprUnaryOpKind unaryOp;
36 } constraintExprUnaryOp;
37
38
39 typedef union _constraintExprData
40 {
41   constraintExprBinaryOp binaryOp;
42   constraintExprUnaryOp unaryOp;
43   constraintTerm term;
44 }  * constraintExprData;
45
46 /*@constant null constraintExprData constraintExprData_undefined; @*/
47 # define constraintExprData_undefined ((constraintExprData)NULL)
48
49 extern /*@falsenull@*/ bool constraintExprData_isDefined (/*@observer@*/ /*@reldef@*/constraintExprData p_e) /*@*/ ;
50 extern /*@unused@*/ /*@truenull@*/ bool constraintExprData_isUndefined (constraintExprData p_e) /*@*/ ;
51 extern/*@unused@*/ /*@truenull@*/ bool constraintExprData_isError (constraintExprData p_e) /*@*/ ;
52
53 # define constraintExprData_isDefined(e)      ((e) != constraintExprData_undefined)
54 # define constraintExprData_isUndefined(e)    ((e) == constraintExprData_undefined)
55 # define constraintExprData_isError(e)        ((e) == constraintExprData_undefined)
56
57 constraintExprData constraintExprData_termSetTerm (/*@reldef@*/ constraintExprData data, constraintTerm term);
58
59 constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data) /*@*/;
60
61 constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@reldef@*/constraintExprData data) /*@*/;
62
63 constraintExpr  constraintExprData_unaryExprGetExpr (/*@reldef@*/constraintExprData data) /*@*/;
64
65
66 //  /*@special@*/ constraintExprData  constraintExprData_unaryExprSetOp ( /*@out@*/ /*@special@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op) /*@sets result->unaryOp.unaryOp@*/;
67
68
69 constraintExprData  constraintExprData_unaryExprSetOp (/*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op);
70
71  constraintExprData  constraintExprData_unaryExprSetExpr (/*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExpr expr);
72
73
74 constraintExprBinaryOpKind  constraintExprData_binaryExprGetOp (/*@reldef@*/constraintExprData data) /*@*/;
75
76 constraintExpr  constraintExprData_binaryExprGetExpr1 (/*@reldef@*/constraintExprData data)/*@*/;
77
78 constraintExpr  constraintExprData_binaryExprGetExpr2 (/*@reldef@*/constraintExprData data)/*@*/;
79
80 constraintExprData  constraintExprData_binaryExprSetExpr1 (/*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExpr expr) ;
81
82 constraintExprData  constraintExprData_binaryExprSetExpr2  (/*@reldef@*/ /*@returned@*/  constraintExprData data, constraintExpr expr);
83
84      constraintExprData  constraintExprData_binaryExprSetOp (/*@reldef@*/ /*@returned@*/ /*@out@*/constraintExprData data, constraintExprBinaryOpKind op);
85
86 constraintExprData constraintExprData_copyBinaryExpr(constraintExprData data);
87
88 constraintExprData constraintExprData_copyUnaryExpr(constraintExprData data);
89
90 constraintExprData constraintExprData_copyTerm (constraintExprData data);
91
92 #else
93
94 #error "Multiple Include"
95
96 #endif
This page took 0.040331 seconds and 5 git commands to generate.