]> andersk Git - splint.git/blame - src/Headers/constraintTerm.h
Updating for cert move
[splint.git] / src / Headers / constraintTerm.h
CommitLineData
92c4a786 1#ifndef __constraintTerm_h__
2
3#define __constraintTerm_h__
4
6e88de2d 5typedef union
6{
7 exprNode expr;
8 sRef sref;
9 int intlit;
10} constraintTermValue;
dc92450f 11
6e88de2d 12void constraintTermValue_copy (/*@out@*/ constraintTermValue src, constraintTermValue dst);
92c4a786 13
6e88de2d 14#define constraintTermValue_copy(dst, src) ((dst) = (src))
92c4a786 15
6e88de2d 16typedef enum
17{
18 ERRORBADCONSTRAINTTERMTYPE,
19 EXPRNODE, SREF,
20 INTLITERAL
21} constraintTermType;
361091cc 22
6e88de2d 23struct _constraintTerm {
24 fileloc loc;
25 constraintTermValue value;
26 constraintTermType kind;
27};
92c4a786 28
29
6e88de2d 30abst_typedef struct _constraintTerm * constraintTerm;
92c4a786 31
92c4a786 32
92c4a786 33
6e88de2d 34constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm term) /*@modifies term@*/ ;
361091cc 35
6e88de2d 36constraintTerm constraintTerm_makeExprNode (/*@only@*/ exprNode e) /*@*/;
361091cc 37
6e88de2d 38constraintTerm constraintTerm_copy (constraintTerm term) /*@*/;
361091cc 39
6e88de2d 40constraintTerm exprNode_makeConstraintTerm ( exprNode e) /*@*/;
361091cc 41
6e88de2d 42bool constraintTerm_same (constraintTerm term1, constraintTerm term2) /*@*/;
361091cc 43
6e88de2d 44bool constraintTerm_similar (constraintTerm term1, constraintTerm term2) /*@*/;
361091cc 45
6e88de2d 46bool constraintTerm_canGetValue (constraintTerm term)/*@*/;
47int constraintTerm_getValue (constraintTerm term) /*@*/;
361091cc 48
6e88de2d 49fileloc constraintTerm_getFileloc (constraintTerm t) /*@*/;
361091cc 50
6e88de2d 51constraintTerm constraintTerm_makeMaxSetexpr (exprNode e) /*@*/;
361091cc 52
6e88de2d 53constraintTerm constraintTerm_makeMinSetexpr (exprNode e) /*@*/;
361091cc 54
6e88de2d 55constraintTerm constraintTerm_makeMaxReadexpr (exprNode e) /*@*/;
93307a76 56
6e88de2d 57constraintTerm constraintTerm_makeMinReadexpr (exprNode e) /*@*/;
93307a76 58
6e88de2d 59constraintTerm constraintTerm_makeValueexpr (exprNode e) /*@*/;
93307a76 60
6e88de2d 61constraintTerm intLit_makeConstraintTerm (int i) /*@*/;
ef2aa32a 62
6e88de2d 63constraintTerm constraintTerm_makeIntLitValue (int i) /*@*/;
ef2aa32a 64
6e88de2d 65bool constraintTerm_isIntLiteral (constraintTerm term) /*@*/;
dc92450f 66
6e88de2d 67cstring constraintTerm_print (constraintTerm term) /*@*/;
ef2aa32a 68
6e88de2d 69constraintTerm constraintTerm_makesRef (/*@only@*/ sRef s) /*@*/;
ef2aa32a 70
6e88de2d 71bool constraintTerm_probSame (constraintTerm term1, constraintTerm term2) /*@*/;
ef2aa32a 72
6e88de2d 73constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm term, fileloc loc) /*@modifies term@*/;
92c4a786 74
6e88de2d 75constraintTerm constraintTerm_makeIntLiteral (int i) /*@*/;
92c4a786 76
6e88de2d 77bool constraintTerm_isStringLiteral (constraintTerm c) /*@*/;
78cstring constraintTerm_getStringLiteral (constraintTerm c) /*@*/;
92c4a786 79
6e88de2d 80constraintExpr
81constraintExpr_doFixResult (constraintExpr e, exprNode fcnCall) /*@modifies e @*/;
92c4a786 82
6e88de2d 83#else
92c4a786 84
6e88de2d 85#error Multiple Include
361091cc 86
6e88de2d 87#endif
This page took 0.125773 seconds and 5 git commands to generate.