summaryrefslogtreecommitdiff
path: root/src/parser
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2015-03-05 14:59:15 +0100
committerajreynol <andrew.j.reynolds@gmail.com>2015-03-05 14:59:15 +0100
commit8d140a28c76095e148acd64e47b5ca0a92ca09be (patch)
tree02d7b75f934ecd02a95b3946b9a030dc3d9f3cbc /src/parser
parent74f1358ca108f3ae4bc8b2d01a2c14e0c20bcc9b (diff)
Minor fixes. Extend cegqi-si to real arithmetic.
Diffstat (limited to 'src/parser')
-rw-r--r--src/parser/smt2/Smt2.g3
-rw-r--r--src/parser/smt2/smt2.cpp4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/parser/smt2/Smt2.g b/src/parser/smt2/Smt2.g
index 902e745ea..576767c78 100644
--- a/src/parser/smt2/Smt2.g
+++ b/src/parser/smt2/Smt2.g
@@ -622,6 +622,9 @@ sygusCommand returns [CVC4::Command* cmd = NULL]
std::vector<DatatypeType> datatypeTypes = PARSER_STATE->mkMutualDatatypeTypes(datatypes);
seq->addCommand(new DatatypeDeclarationCommand(datatypeTypes));
std::map<DatatypeType, Expr> evals;
+ if( sorts[0]!=range ){
+ PARSER_STATE->parseError(std::string("Bad return type in grammar for SyGuS function ") + fun);
+ }
// make all the evals first, since they are mutually referential
for(size_t i = 0; i < datatypeTypes.size(); ++i) {
DatatypeType dtt = datatypeTypes[i];
diff --git a/src/parser/smt2/smt2.cpp b/src/parser/smt2/smt2.cpp
index 3db2e252d..20f3c364b 100644
--- a/src/parser/smt2/smt2.cpp
+++ b/src/parser/smt2/smt2.cpp
@@ -306,6 +306,10 @@ void Smt2::setLogic(std::string name) {
name = "UFLRA";
} else if(name == "LIA") {
name = "UFLIA";
+ } else if(name == "LRA") {
+ name = "UFLRA";
+ } else if(name == "LIRA") {
+ name = "UFLIRA";
} else if(name == "BV") {
name = "UFBV";
} else {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback