summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdalrhman Mohamed <32971963+abdoo8080@users.noreply.github.com>2020-03-28 11:41:22 -0500
committerGitHub <noreply@github.com>2020-03-28 11:41:22 -0500
commit2c6b35d8ce7dcacd2f13bcdd5365629ee315dc8d (patch)
tree7bbb9b6267f0a5f5cd1d20600f3e339b5b6bcfa6
parent9023d348d0f30fdd81805f224e77e90ecef1350d (diff)
Stop printing datatype declaration for Sygus V1 grammar. (#4168)
-rw-r--r--src/parser/parser.h3
-rw-r--r--src/parser/smt2/Smt2.g20
2 files changed, 21 insertions, 2 deletions
diff --git a/src/parser/parser.h b/src/parser/parser.h
index d6c0e0e15..72e175a58 100644
--- a/src/parser/parser.h
+++ b/src/parser/parser.h
@@ -273,6 +273,9 @@ public:
return d_input;
}
+ /** Get unresolved sorts */
+ inline std::set<api::Sort>& getUnresolvedSorts() { return d_unresolved; }
+
/** Deletes and replaces the current parser input. */
void setInput(Input* input) {
delete d_input;
diff --git a/src/parser/smt2/Smt2.g b/src/parser/smt2/Smt2.g
index 69f21acb7..0c42678aa 100644
--- a/src/parser/smt2/Smt2.g
+++ b/src/parser/smt2/Smt2.g
@@ -782,8 +782,24 @@ sygusGrammarV1[CVC4::api::Sort & ret,
Debug("parser-sygus") << " " << i << " : " << datatypes[i].getName()
<< std::endl;
}
- std::vector<api::Sort> datatypeTypes =
- PARSER_STATE->bindMutualDatatypeTypes(datatypes, false);
+
+ std::vector<CVC4::Datatype> dtypes;
+ dtypes.reserve(ndatatypes);
+
+ for (api::DatatypeDecl i : datatypes)
+ {
+ dtypes.push_back(i.getDatatype());
+ }
+
+ std::set<Type> tset =
+ api::sortSetToTypes(PARSER_STATE->getUnresolvedSorts());
+
+ std::vector<DatatypeType> datatypeTypes =
+ SOLVER->getExprManager()->mkMutualDatatypeTypes(
+ dtypes, tset, ExprManager::DATATYPE_FLAG_PLACEHOLDER);
+
+ PARSER_STATE->getUnresolvedSorts().clear();
+
ret = datatypeTypes[0];
};
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback