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