3. Run tests:
- make regressall
+ make regresscvc
NB:
Assumes you have downloaded the testcases
-make regressall
+make regresscvc
make regress_smt
make regress_c_api
make regressbigarray
\ No newline at end of file
PROGNAME=bin/stp
ALL_OPTIONS= -l $(REGRESS_LEVEL) $(PROGNAME) $(REGRESS_TESTS)
-.PHONY: regressall
+.PHONY: regresscvc
regressall:
@echo "*********************************************************" \
| tee -a $(REGRESS_LOG)
break;
//case BVVARSHIFT:
//case BVSRSHIFT:
- break;
+ //break;
default:
break;
}
result = bm.CreateNode(k, vec);
break;
}
+ case FOR:
default:
if (k == SYMBOL && BOOLEAN_TYPE == simpleForm.GetType())
result = simpleForm;
else
{
+ FatalError("TransformFormula: Illegal kind: ", bm.CreateNode(UNDEFINED), k);
cerr << "The input is: " << simpleForm << endl;
cerr << "The valuewidth of input is : " << simpleForm.GetValueWidth() << endl;
- FatalError("TransformFormula: Illegal kind: ", bm.CreateNode(UNDEFINED), k);
}
break;
}
PL_Print1(os, c[1], indentation, letize);
os << ";";
PL_Print1(os, c[2], indentation, letize);
- os << ";";
- PL_Print1(os, c[3], indentation, letize);
os << "){ \n";
- PL_Print1(os, c[4], indentation, letize);
+ PL_Print1(os, c[3], indentation, letize);
os << "} \n";
break;
case BVLT:
_parser_symbol_table.insert(*i);
i->SetIndexWidth($3.indexwidth);
i->SetValueWidth($3.valuewidth);
-
- //FIXME: HACK_ATTACK. this vector was hacked into the code to
- //support a special request by Dawson' group. They want the
- //counterexample to be printed in the order of variables declared.
GlobalBeevMgr->ListOfDeclaredVars.push_back(*i);
}
delete $1;
delete $1;
delete $3;
}
- | FOR_TOK '(' TERMID_TOK ';' BVCONST_TOK ';' BVCONST_TOK ';' BVCONST_TOK ')' '{' Formula '}'
+ | FOR_TOK '(' FORMID_TOK ':' Type ';' BVCONST_TOK ';' BVCONST_TOK ';' BVCONST_TOK ')' '{' Formula '}'
{
//Allows a compact representation of
//parameterized set of formulas (bounded
//increment value (BVCONST)
//
//formula (it can be a nested forloop)
+ _parser_symbol_table.insert(*$3);
+ $3->SetIndexWidth($5.indexwidth);
+ $3->SetValueWidth($5.valuewidth);
+
ASTVec vec;
vec.push_back(*$3);
- vec.push_back(*$5);
vec.push_back(*$7);
vec.push_back(*$9);
- vec.push_back(*$12);
+ vec.push_back(*$11);
+ vec.push_back(*$14);
ASTNode * n = new ASTNode(GlobalBeevMgr->CreateNode(FOR,vec));
GlobalBeevMgr->BVTypeCheck(*n);
$$ = n;
delete $3;
- delete $5;
delete $7;
delete $9;
- delete $12;
+ delete $11;
+ delete $14;
}
| NOT_TOK Formula
{
}
(*_letid_expr_map)[var] = letExpr;
- }
+ }//end of LetExprMgr()
//this function looksup the "var to letexpr map" and returns the
//corresponding letexpr. if there is no letexpr, then it simply
ASTNodeMap::iterator it;
if((it =_letid_expr_map->find(v)) != _letid_expr_map->end()) {
if(it->second == ASTUndefined)
- FatalError("Unresolved Identifier: ",v);
+ FatalError("ResolveID :: Unresolved Identifier: ",v);
else
return it->second;
- }
+ }//end of ResolveID()
//this is to mark the let-var as undefined. the let var is defined
//only after the LetExprMgr has completed its work, and until then
// This function simply cleans up the LetID -> LetExpr Map.
void BeevMgr::CleanupLetIDMap(void) {
-
// ext/hash_map::clear() is very expensive on big empty lists. shortcut.
if (_letid_expr_map->size() ==0)
return;
delete _letid_expr_map;
_letid_expr_map = new ASTNodeMap();
- }
+ }//end of CleanupLetIDMap()
void BeevMgr::InitializeLetIDMap(void)
{
_letid_expr_map = new ASTNodeMap();
- }
+ } //end of InitializeLetIDMap()
};
if (pushNeg && (it = SimplifyMap->find(key)) != SimplifyMap->end())
{
- output = (ASTFalse == it->second) ? ASTTrue : (ASTTrue == it->second) ? ASTFalse : CreateNode(NOT, it->second);
+ output =
+ (ASTFalse == it->second) ?
+ ASTTrue :
+ (ASTTrue == it->second) ?
+ ASTFalse : CreateNode(NOT, it->second);
CountersAndStats("2nd_Successful_CheckSimplifyMap");
return true;
}