X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/6e88de2d1b326c7ad00227131afb5c2a002735bb..77970e15bdf30584bb182228ef7c99e626e54fa2:/src/Headers/constraintExpr.h diff --git a/src/Headers/constraintExpr.h b/src/Headers/constraintExpr.h index c637bb6..64208e6 100644 --- a/src/Headers/constraintExpr.h +++ b/src/Headers/constraintExpr.h @@ -10,109 +10,118 @@ typedef enum } constraintExprKind; -struct constraintExpr_ { +struct s_constraintExpr { constraintExprKind kind; constraintExprData data; }; + /*@constant null constraintExpr constraintExpr_undefined; @*/ # define constraintExpr_undefined ((constraintExpr)NULL) extern /*@falsenull@*/ bool constraintExpr_isDefined (constraintExpr p_e) /*@*/ ; extern /*@unused@*/ /*@truenull@*/ bool constraintExpr_isUndefined (constraintExpr p_e) /*@*/ ; -extern /*@truenull@*/ bool constraintExpr_isError (constraintExpr p_e) /*@*/ ; +extern /*@unused@*/ /*@truenull@*/ bool constraintExpr_isError (constraintExpr p_e) /*@*/ ; # define constraintExpr_isDefined(e) ((e) != constraintExpr_undefined) # define constraintExpr_isUndefined(e) ((e) == constraintExpr_undefined) # define constraintExpr_isError(e) ((e) == constraintExpr_undefined) +void constraintExpr_free ( /*@only@*/ constraintExpr p_expr); -/*@constant null constraintExprData constraintExprData_undefined; @*/ -# define constraintExprData_undefined ((constraintExprData)NULL) +constraintExpr constraintExpr_setFileloc (/*@returned@*/ constraintExpr p_c, fileloc p_loc) /*@modifies p_c@*/; -extern /*@falsenull@*/ bool constraintExprData_isDefined (constraintExprData p_e) /*@*/ ; -extern /*@unused@*/ /*@truenull@*/ bool constraintExprData_isUndefined (constraintExprData p_e) /*@*/ ; -extern /*@truenull@*/ bool constraintExprData_isError (constraintExprData p_e) /*@*/ ; +constraintExpr constraintExpr_copy (constraintExpr p_expr) /*@*/; -# define constraintExprData_isDefined(e) ((e) != constraintExprData_undefined) -# define constraintExprData_isUndefined(e) ((e) == constraintExprData_undefined) -# define constraintExprData_isError(e) ((e) == constraintExprData_undefined) +/*@only@*/ cstring constraintExpr_unparse (/*@temp@*/ /*@observer@*/ constraintExpr p_ex) /*@*/; +extern cstring constraintExpr_print (constraintExpr p_expr) /*@*/; -int constraintExpr_getValue (constraintExpr expr) /*@*/; +bool constraintExpr_similar (constraintExpr p_expr1, constraintExpr p_expr2) /*@*/; +bool constraintExpr_same (constraintExpr p_expr1, constraintExpr p_expr2) /*@*/; +/*@only@*/ constraintExpr constraintExpr_searchandreplace (/*@only@*/ /*@unique@*/ constraintExpr p_c, /*@temp@*/ /*@observer@*/ constraintExpr p_old, /*@temp@*/ /*@observer@*/ constraintExpr p_newExpr ) /*@modifies p_c@*/; -constraintExpr constraintExpr_setFileloc (constraintExpr expr, fileloc loc) /*@modifies expr@*/; +bool constraintExpr_canGetValue (constraintExpr p_expr) /*@*/; +long constraintExpr_getValue (constraintExpr p_expr) /*@*/; -constraintExpr constraintExpr_copy (constraintExpr expr) /*@*/; +int constraintExpr_compare (constraintExpr p_expr1, constraintExpr p_expr2) /*@*/; -cstring constraintExpr_unparse (constraintExpr ex) /*@*/; -extern cstring constraintExpr_print (constraintExpr expr) /*@*/; +/* constraintExpr constraintExpr_makeValueInt (int i); */ +/*@only@*/ constraintExpr constraintExpr_makeIntLiteral (long p_i); -bool constraintExpr_similar (constraintExpr expr1, constraintExpr expr2) /*@*/; -bool constraintExpr_same (constraintExpr expr1, constraintExpr expr2) /*@*/; -constraintExpr constraintExpr_searchandreplace (constraintExpr c, constraintExpr old, constraintExpr new ) /*@modifies c@*/; -bool constraintExpr_canGetValue (constraintExpr expr) /*@*/; +/*@only@*/ constraintExpr constraintExpr_makeValueExpr (/*@exposed@*/ exprNode p_expr); -int constraintExpr_compare (constraintExpr expr1, constraintExpr expr2) /*@*/; +/*@only@*/ constraintExpr constraintExpr_makeMaxSetExpr (/*@exposed@*/ exprNode p_expr); -//constraintExpr constraintExpr_makeValueInt (int i); +/*@only@*/ constraintExpr constraintExpr_makeMaxReadExpr (/*@exposed@*/ exprNode p_expr); -constraintExpr constraintExpr_makeIntLiteral (int i); +/*@only@*/ constraintExpr constraintExpr_makeIncConstraintExpr (/*@only@*/ constraintExpr p_expr); -constraintExpr constraintExpr_makeValueExpr (exprNode expr); +/*@only@*/ constraintExpr constraintExpr_makeDecConstraintExpr (/*@only@*/ constraintExpr p_expr); -constraintExpr constraintExpr_makeMaxSetExpr (exprNode expr); +/*@only@*/ constraintExpr constraintExpr_simplify (/*@only@*/ constraintExpr p_c); -constraintExpr constraintExpr_makeMaxReadExpr (exprNode expr); +/*@only@*/ constraintExpr constraintExpr_solveBinaryExpr (constraintExpr p_lexpr, /*@only@*/ constraintExpr p_expr) /*@modifies p_lexpr, p_expr @*/; -constraintExpr constraintExpr_makeIncConstraintExpr (constraintExpr expr); +bool constraintExpr_search (/*@observer@*/ /*@temp@*/ constraintExpr p_c, /*@observer@*/ /*@temp@*/ constraintExpr p_old); -constraintExpr constraintExpr_makeDecConstraintExpr (constraintExpr expr); +/*@only@*/ fileloc constraintExpr_getFileloc (constraintExpr p_expr); -constraintExpr constraintExpr_simplify (constraintExpr c) /*@modifies c@*/; -constraintExpr constraintExpr_solveBinaryExpr (constraintExpr lexpr, constraintExpr expr) /*@modifies lexpr@*/; +/*@only@*/ constraintExpr constraintExpr_makeSRefMaxset ( /*@temp@*/ /*@observer@*/ sRef p_s); -bool constraintExpr_search (constraintExpr c, constraintExpr old) /*@*/; +/*@only@*/ constraintExpr constraintExpr_makeSRefMaxRead(/*@temp@*/ /*@observer@*/ sRef p_s); -fileloc constraintExpr_getFileloc (constraintExpr expr); +/*@only@*/ constraintExpr constraintExpr_makeTermsRef (/*@temp@*/ sRef p_s); -constraintExpr constraintExpr_makeBinaryOpConstraintExprIntLiteral (constraintExpr expr, int literal); +constraintExpr constraintExpr_doSRefFixBaseParam ( /*@returned@*/ constraintExpr p_expr, exprNodeList p_arglist); -constraintExpr constraintExpr_makeSRefMaxset (sRef s); +/*@only@*/ constraintExpr constraintExpr_makeExprNode (/*@dependent@*/ exprNode p_e); -constraintExpr constraintExpr_makeTermsRef (sRef s); -constraintExpr constraintExpr_doSRefFixBaseParam ( /*@returned@*/ constraintExpr expr, exprNodeList arglist); -constraintExpr constraintExpr_makeExprNode (exprNode e); -constraintExpr constraintExpr_doSRefFixConstraintParam (/*@returned@*/ constraintExpr expr, exprNodeList arglist); +/*@only@*/ constraintExpr constraintExpr_doFixResult (/*@only@*/ constraintExpr p_expr, /*@observer@*/ exprNode p_fcnCall); -constraintExpr constraintExpr_doFixResult (/*@returned@*/ constraintExpr expr, exprNode fcnCall); -bool constraintExpr_isLit (constraintExpr expr); -constraintExpr constraintExpr_makeAddConstraintExpr (constraintExpr expr, constraintExpr add); +/*@falsenull@*/ bool constraintExpr_isLit (constraintExpr p_expr) /*@*/ ; -constraintExpr constraintExpr_parseMakeUnaryOp (lltok op, constraintExpr cexpr); +/*@only@*/ constraintExpr constraintExpr_makeAddExpr (/*@only@*/ constraintExpr p_expr, /*@only@*/ constraintExpr p_addent); -constraintExpr constraintExpr_parseMakeBinaryOp (constraintExpr expr1, lltok op, constraintExpr expr2); +/*@only@*/ constraintExpr constraintExpr_makeSubtractExpr (/*@only@*/ constraintExpr p_expr, /*@only@*/ constraintExpr p_addent); -bool constraintExpr_hasMaxSet (constraintExpr expr); +/*@only@*/ constraintExpr constraintExpr_parseMakeUnaryOp (lltok p_op,/*@only@*/ constraintExpr p_cexpr); -//static constraintExpr constraintExpr_propagateConstants (constraintExpr expr, -// /*@out@*/ bool * propagate, -// /*@out@*/ int *literal); +constraintExpr constraintExpr_parseMakeBinaryOp (/*@only@*/ constraintExpr p_expr1, lltok p_op, /*@only@*/ constraintExpr p_expr2); -constraintExpr constraintExpr_makeSRefMaxRead(sRef s); +bool constraintExpr_hasMaxSet (/*@observer@*/ /*@temp@*/ constraintExpr p_expr); -constraintTerm constraintTerm_doSRefFixBaseParam (constraintTerm term, exprNodeList arglist) /*@modifies term@*/; -constraintExpr -constraintExpr_doSRefFixConstraintParam (constraintExpr e, exprNodeList arglist) /*@modifies e@*/; +/*@only@*/ constraintExpr constraintExpr_doSRefFixConstraintParam (/*@returned@*/ /*@only@*/ constraintExpr p_expr, exprNodeList p_arglist) /*@modifies p_expr@*/; -#else +/*@only@*/ +constraintExpr constraintExpr_propagateConstants (/*@only@*/ constraintExpr p_expr, + /*@out@*/ bool * p_propagate, + /*@out@*/ int *p_literal); -# error "Multiple include" +/*@falsenull@*/ bool constraintExpr_isBinaryExpr (/*@observer@*/ /*@temp@*/ constraintExpr p_c) /*@*/ ; + +extern void constraintExpr_dump (/*@observer@*/ /*@temp@*/ constraintExpr p_expr, FILE *p_f); + +extern /*@only@*/ constraintExpr constraintExpr_undump (FILE *p_f); + +extern /*@only@*/ constraintExpr constraintExpr_makeTermExprNode (/*@exposed@*/ exprNode p_e) ; +/* drl added 8/8/001*/ +bool constraintExpr_isTerm (/*@observer@*/ /*@temp@*/ constraintExpr p_c); + +/* drl added 8/8/001*/ +/*@observer@*/ /*@temp@*/ constraintTerm constraintExpr_getTerm ( /*@temp@*/ /*@observer@*/ constraintExpr p_c); + +/* drl added 8/8/001*/ +int constraintExpr_getDepth (/*@observer@*/ /*@temp@*/ constraintExpr p_ex); + + +#else +# error "Multiple include" #endif