diff options
Diffstat (limited to 'src/parser/smt2')
-rw-r--r-- | src/parser/smt2/Smt2.g | 3 | ||||
-rw-r--r-- | src/parser/smt2/smt2.cpp | 4 |
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 { |