]> andersk Git - splint.git/blame - src/Headers/constraintExprData.h
The code almost work.
[splint.git] / src / Headers / constraintExprData.h
CommitLineData
a8e557d3 1#ifndef __constraintExprData_h__
2
3#define __constraintExprData_h__
4
5
6typedef enum
7{
84c9ffbf 8 BINARYOP_UNDEFINED,
a8e557d3 9 PLUS,
10 MINUS
11}
12constraintExprBinaryOpKind;
13
14typedef enum
15{
16 UNARYOP_UNDEFINED,
bb25bea6 17 MAXSET, MINSET, MAXREAD, MINREAD
a8e557d3 18 }
19constraintExprUnaryOpKind;
20
21
22typedef struct constraintExprBinaryOp_
23{
24 constraintExpr expr1;
25 constraintExprBinaryOpKind binaryOp;
26 constraintExpr expr2;
27} constraintExprBinaryOp;
28
29
30typedef struct constraintExprUnaryOp_
31{
32 constraintExpr expr;
33 constraintExprUnaryOpKind unaryOp;
34} constraintExprUnaryOp;
35
36
37typedef 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
47extern /*@falsenull@*/ bool constraintExprData_isDefined (/*@observer@*/ /*@reldef@*/constraintExprData p_e) /*@*/ ;
48extern /*@unused@*/ /*@truenull@*/ bool constraintExprData_isUndefined (constraintExprData p_e) /*@*/ ;
84c9ffbf 49extern/*@unused@*/ /*@truenull@*/ bool constraintExprData_isError (constraintExprData p_e) /*@*/ ;
a8e557d3 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
a8e557d3 55
d46ce6a4 56/*@reldef@*/ constraintExprData constraintExprData_termSetTerm (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintTerm term);
57
58/*@observer@*/ constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data) /*@*/;
a8e557d3 59
84c9ffbf 60constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@reldef@*/constraintExprData data) /*@*/;
a8e557d3 61
d46ce6a4 62/*@observer@*/ constraintExpr constraintExprData_unaryExprGetExpr (/*@reldef@*/constraintExprData data) /*@*/;
a8e557d3 63
64
65// /*@special@*/ constraintExprData constraintExprData_unaryExprSetOp ( /*@out@*/ /*@special@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op) /*@sets result->unaryOp.unaryOp@*/;
66
67
84c9ffbf 68constraintExprData constraintExprData_unaryExprSetOp (/*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op);
a8e557d3 69
d46ce6a4 70constraintExprData constraintExprData_unaryExprSetExpr (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr);
a8e557d3 71
72
84c9ffbf 73constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (/*@reldef@*/constraintExprData data) /*@*/;
a8e557d3 74
d46ce6a4 75/*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr1 (/*@reldef@*/constraintExprData data)/*@*/;
a8e557d3 76
d46ce6a4 77/*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr2 (/*@reldef@*/constraintExprData data)/*@*/;
a8e557d3 78
d46ce6a4 79constraintExprData constraintExprData_binaryExprSetExpr1 (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr) ;
a8e557d3 80
d46ce6a4 81constraintExprData constraintExprData_binaryExprSetExpr2 (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr);
a8e557d3 82
84c9ffbf 83 constraintExprData constraintExprData_binaryExprSetOp (/*@reldef@*/ /*@returned@*/ /*@out@*/constraintExprData data, constraintExprBinaryOpKind op);
a8e557d3 84
d46ce6a4 85/*@only@*/ constraintExprData constraintExprData_copyBinaryExpr(constraintExprData data);
a8e557d3 86
d46ce6a4 87/*@only@*/ constraintExprData constraintExprData_copyUnaryExpr(constraintExprData data);
a8e557d3 88
d46ce6a4 89/*@only@*/ constraintExprData constraintExprData_copyTerm (constraintExprData data);
a8e557d3 90
91#else
92
93#error "Multiple Include"
94
95#endif
This page took 0.202031 seconds and 5 git commands to generate.