summaryrefslogtreecommitdiff
path: root/src/parser/smt2/Smt2.g
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/smt2/Smt2.g')
-rw-r--r--src/parser/smt2/Smt2.g11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/parser/smt2/Smt2.g b/src/parser/smt2/Smt2.g
index 8b7c0bda2..8dac9915e 100644
--- a/src/parser/smt2/Smt2.g
+++ b/src/parser/smt2/Smt2.g
@@ -586,7 +586,10 @@ sygusCommand returns [CVC4::Command* cmd = NULL]
++i) {
terms.push_back(PARSER_STATE->mkBoundVar((*i).first, (*i).second));
}
- Expr bvl = MK_EXPR(kind::BOUND_VAR_LIST, terms);
+ Expr bvl;
+ if( !terms.empty() ){
+ bvl = MK_EXPR(kind::BOUND_VAR_LIST, terms);
+ }
terms.clear();
terms.push_back(bvl);
}
@@ -633,8 +636,10 @@ sygusCommand returns [CVC4::Command* cmd = NULL]
PARSER_STATE->checkDeclaration(name, CHECK_UNDECLARED, SYM_VARIABLE);
std::vector<Type> evalType;
evalType.push_back(dtt);
- for(size_t j = 0; j < terms[0].getNumChildren(); ++j) {
- evalType.push_back(terms[0][j].getType());
+ if( !terms[0].isNull() ){
+ for(size_t j = 0; j < terms[0].getNumChildren(); ++j) {
+ evalType.push_back(terms[0][j].getType());
+ }
}
evalType.push_back(sorts[i]);
Expr eval = PARSER_STATE->mkVar(name, EXPR_MANAGER->mkFunctionType(evalType));
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback