]> andersk Git - splint.git/blame - src/Headers/constraintExprData.h
*** empty log message ***
[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
28bf4b0b 37typedef union constraintExprData
a8e557d3 38{
39 constraintExprBinaryOp binaryOp;
40 constraintExprUnaryOp unaryOp;
41 constraintTerm term;
42} * constraintExprData;
43
44/*@constant null constraintExprData constraintExprData_undefined; @*/
abb1cb43 45# define constraintExprData_undefined ((constraintExprData) NULL)
a8e557d3 46
4ab867d6 47extern /*@falsenull@*/ bool constraintExprData_isDefined ( /*@temp@*/ /*@observer@*/ /*@reldef@*/constraintExprData p_e) /*@*/ ;
48extern /*@unused@*/ /*@truenull@*/ bool constraintExprData_isUndefined (/*2oberserver@*/ constraintExprData p_e) /*@*/ ;
49extern/*@unused@*/ /*@truenull@*/ bool constraintExprData_isError (/*@observer@*/ 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
2934b455 55extern void constraintExprData_freeBinaryExpr (/*@only@*/ constraintExprData) ;
56extern void constraintExprData_freeUnaryExpr (/*@only@*/ constraintExprData) ;
57extern void constraintExprData_freeTerm (/*@only@*/ constraintExprData) ;
a8e557d3 58
28bf4b0b 59constraintExprData constraintExprData_termSetTerm ( /*@returned@*/ /*@partial@*/ constraintExprData p_data, /*@only@*/ constraintTerm p_term);
d46ce6a4 60
28bf4b0b 61/*@observer@*/ constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData p_data) /*@*/;
a8e557d3 62
28bf4b0b 63constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@observer@*//*@reldef@*/constraintExprData p_data) /*@*/;
a8e557d3 64
28bf4b0b 65/*@observer@*/ constraintExpr constraintExprData_unaryExprGetExpr (/*@observer@*/ /*@reldef@*/constraintExprData p_data) /*@*/;
a8e557d3 66
67
28bf4b0b 68// special constraintExprData constraintExprData_unaryExprSetOp ( /out special@*/ @returned@ constraintExprData p_data, constraintExprUnaryOpKind op) /sets result->unaryOp.unaryOp;
a8e557d3 69
70
28bf4b0b 71constraintExprData constraintExprData_unaryExprSetOp (/*@partial@*/ /*@returned@*/ constraintExprData p_data, constraintExprUnaryOpKind p_op);
a8e557d3 72
28bf4b0b 73constraintExprData constraintExprData_unaryExprSetExpr (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr);
a8e557d3 74
75
28bf4b0b 76constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (/*@partial@*/constraintExprData p_data) /*@*/;
a8e557d3 77
28bf4b0b 78/*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr1 (/*@observer@*/ /*@reldef@*/constraintExprData p_data)/*@*/;
a8e557d3 79
28bf4b0b 80/*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr2 (/*@observer@*/ /*@reldef@*/constraintExprData p_data)/*@*/;
a8e557d3 81
28bf4b0b 82constraintExprData constraintExprData_binaryExprSetExpr1 (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr) ;
a8e557d3 83
28bf4b0b 84constraintExprData constraintExprData_binaryExprSetExpr2 (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr);
a8e557d3 85
28bf4b0b 86constraintExprData constraintExprData_binaryExprSetOp (/*@partial@*/ /*@returned@*/ /*@out@*/constraintExprData p_data, constraintExprBinaryOpKind p_op);
a8e557d3 87
28bf4b0b 88/*@only@*/ constraintExprData constraintExprData_copyBinaryExpr(/*@observer@*/ constraintExprData p_data);
a8e557d3 89
28bf4b0b 90/*@only@*/ constraintExprData constraintExprData_copyUnaryExpr(/*@observer@*/ constraintExprData p_data);
a8e557d3 91
28bf4b0b 92/*@only@*/ constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprData p_data);
a8e557d3 93
94#else
95
96#error "Multiple Include"
97
98#endif
This page took 0.073964 seconds and 5 git commands to generate.