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