]> andersk Git - splint.git/blame - src/Headers/constraintTerm.h
*** empty log message ***
[splint.git] / src / Headers / constraintTerm.h
CommitLineData
92c4a786 1#ifndef __constraintTerm_h__
2
3#define __constraintTerm_h__
4
6e88de2d 5typedef union
6{
28bf4b0b 7 /*@exposed@*/ /*@dependent@*/ exprNode expr;
8 /*@only@*/ sRef sref;
6e88de2d 9 int intlit;
10} constraintTermValue;
dc92450f 11
28bf4b0b 12/*@-namechecks@*/
13
6e88de2d 14typedef enum
15{
16 ERRORBADCONSTRAINTTERMTYPE,
17 EXPRNODE, SREF,
18 INTLITERAL
19} constraintTermType;
361091cc 20
6e88de2d 21struct _constraintTerm {
4ab867d6 22 /*@only@*/ fileloc loc;
920a3797 23 constraintTermValue value;
6e88de2d 24 constraintTermType kind;
990ec868 25} ;
92c4a786 26
990ec868 27abst_typedef struct _constraintTerm *constraintTerm;
92c4a786 28
2934b455 29extern constraintTermType constraintTerm_getKind (constraintTerm) ;
30extern /*@exposed@*/ sRef constraintTerm_getSRef (constraintTerm) ;
92c4a786 31
d46ce6a4 32void constraintTerm_free (/*@only@*/ constraintTerm term);
a8e557d3 33
6e88de2d 34constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm term) /*@modifies term@*/ ;
361091cc 35
28bf4b0b 36/*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@dependent@*/ exprNode e) /*@*/;
361091cc 37
6e88de2d 38constraintTerm constraintTerm_copy (constraintTerm term) /*@*/;
361091cc 39
6e88de2d 40bool constraintTerm_similar (constraintTerm term1, constraintTerm term2) /*@*/;
361091cc 41
6e88de2d 42bool constraintTerm_canGetValue (constraintTerm term)/*@*/;
43int constraintTerm_getValue (constraintTerm term) /*@*/;
361091cc 44
6e88de2d 45fileloc constraintTerm_getFileloc (constraintTerm t) /*@*/;
361091cc 46
ef2aa32a 47
6e88de2d 48bool constraintTerm_isIntLiteral (constraintTerm term) /*@*/;
dc92450f 49
6e88de2d 50cstring constraintTerm_print (constraintTerm term) /*@*/;
ef2aa32a 51
28bf4b0b 52constraintTerm constraintTerm_makesRef (/*@temp@*/ /*@observer@*/ sRef s) /*@*/;
ef2aa32a 53
bb25bea6 54/*@unused@*/ bool constraintTerm_probSame (constraintTerm term1, constraintTerm term2) /*@*/;
ef2aa32a 55
6e88de2d 56constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm term, fileloc loc) /*@modifies term@*/;
92c4a786 57
6e88de2d 58constraintTerm constraintTerm_makeIntLiteral (int i) /*@*/;
92c4a786 59
6e88de2d 60bool constraintTerm_isStringLiteral (constraintTerm c) /*@*/;
61cstring constraintTerm_getStringLiteral (constraintTerm c) /*@*/;
92c4a786 62
a8e557d3 63
bb25bea6 64constraintTerm constraintTerm_doSRefFixBaseParam (/*@returned@*/ constraintTerm term, exprNodeList arglist) /*@modifies term@*/;
92c4a786 65
920a3797 66void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f);
67
68/*@only@*/ constraintTerm constraintTerm_undump ( FILE *f);
69
28bf4b0b 70/*@=namechecks@*/
71
6e88de2d 72#else
92c4a786 73
6e88de2d 74#error Multiple Include
361091cc 75
6e88de2d 76#endif
This page took 1.437493 seconds and 5 git commands to generate.