diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2019-12-06 11:00:33 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-06 11:00:33 -0600 |
commit | c7c2d593674e3776ab0c720be1c0c759db8f9453 (patch) | |
tree | fc129a2f0453eb2944009249c4a83ba3bdbaf5a0 /src/parser/smt2 | |
parent | 499aa5641e2b830f60159c2ce1c791bf4d45aac1 (diff) |
Add ExprManager as argument to Datatype (#3535)
Diffstat (limited to 'src/parser/smt2')
-rw-r--r-- | src/parser/smt2/Smt2.g | 8 | ||||
-rw-r--r-- | src/parser/smt2/smt2.cpp | 2 | ||||
-rw-r--r-- | src/parser/smt2/smt2.h | 35 |
3 files changed, 24 insertions, 21 deletions
diff --git a/src/parser/smt2/Smt2.g b/src/parser/smt2/Smt2.g index c1a9df887..96ac7d48e 100644 --- a/src/parser/smt2/Smt2.g +++ b/src/parser/smt2/Smt2.g @@ -959,7 +959,7 @@ sygusGrammar[CVC4::Type & ret, std::stringstream ss; ss << "dt_" << fun << "_" << i.first; std::string dname = ss.str(); - datatypes.push_back(Datatype(dname)); + datatypes.push_back(Datatype(EXPR_MANAGER, dname)); // make its unresolved type, used for referencing the final version of // the datatype PARSER_STATE->checkDeclaration(dname, CHECK_UNDECLARED, SYM_SORT); @@ -1523,7 +1523,7 @@ datatypesDef[bool isCo, PARSER_STATE->parseError("Wrong number of parameters for datatype."); } Debug("parser-dt") << params.size() << " parameters for " << dnames[dts.size()] << std::endl; - dts.push_back(Datatype(dnames[dts.size()],params,isCo)); + dts.push_back(Datatype(EXPR_MANAGER, dnames[dts.size()],params,isCo)); } LPAREN_TOK ( LPAREN_TOK constructorDef[dts.back()] RPAREN_TOK )+ @@ -1533,7 +1533,7 @@ datatypesDef[bool isCo, PARSER_STATE->parseError("No parameters given for datatype."); } Debug("parser-dt") << params.size() << " parameters for " << dnames[dts.size()] << std::endl; - dts.push_back(Datatype(dnames[dts.size()],params,isCo)); + dts.push_back(Datatype(EXPR_MANAGER, dnames[dts.size()],params,isCo)); } ( LPAREN_TOK constructorDef[dts.back()] RPAREN_TOK )+ ) @@ -2596,7 +2596,7 @@ datatypeDef[bool isCo, std::vector<CVC4::Datatype>& datatypes, params.push_back( t ); } )* ']' )?*/ //AJR: this isn't necessary if we use z3's style - { datatypes.push_back(Datatype(id,params,isCo)); + { datatypes.push_back(Datatype(EXPR_MANAGER, id, params, isCo)); if(!PARSER_STATE->isUnresolvedType(id)) { // if not unresolved, must be undeclared PARSER_STATE->checkDeclaration(id, CHECK_UNDECLARED, SYM_SORT); diff --git a/src/parser/smt2/smt2.cpp b/src/parser/smt2/smt2.cpp index c7e70495e..73dea766a 100644 --- a/src/parser/smt2/smt2.cpp +++ b/src/parser/smt2/smt2.cpp @@ -1099,7 +1099,7 @@ bool Smt2::pushSygusDatatypeDef( Type t, std::string& dname, std::vector< bool >& allow_const, std::vector< std::vector< std::string > >& unresolved_gterm_sym ){ sorts.push_back(t); - datatypes.push_back(Datatype(dname)); + datatypes.push_back(Datatype(getExprManager(), dname)); ops.push_back(std::vector<Expr>()); cnames.push_back(std::vector<std::string>()); cargs.push_back(std::vector<std::vector<CVC4::Type> >()); diff --git a/src/parser/smt2/smt2.h b/src/parser/smt2/smt2.h index 215f565cd..efdb0c70f 100644 --- a/src/parser/smt2/smt2.h +++ b/src/parser/smt2/smt2.h @@ -383,22 +383,25 @@ class Smt2 : public Parser CVC4::Type& ret, bool isNested = false); - static bool pushSygusDatatypeDef( Type t, std::string& dname, - std::vector< CVC4::Datatype >& datatypes, - std::vector< CVC4::Type>& sorts, - std::vector< std::vector<CVC4::Expr> >& ops, - std::vector< std::vector<std::string> >& cnames, - std::vector< std::vector< std::vector< CVC4::Type > > >& cargs, - std::vector< bool >& allow_const, - std::vector< std::vector< std::string > >& unresolved_gterm_sym ); - - static bool popSygusDatatypeDef( std::vector< CVC4::Datatype >& datatypes, - std::vector< CVC4::Type>& sorts, - std::vector< std::vector<CVC4::Expr> >& ops, - std::vector< std::vector<std::string> >& cnames, - std::vector< std::vector< std::vector< CVC4::Type > > >& cargs, - std::vector< bool >& allow_const, - std::vector< std::vector< std::string > >& unresolved_gterm_sym ); + bool pushSygusDatatypeDef( + Type t, + std::string& dname, + std::vector<CVC4::Datatype>& datatypes, + std::vector<CVC4::Type>& sorts, + std::vector<std::vector<CVC4::Expr>>& ops, + std::vector<std::vector<std::string>>& cnames, + std::vector<std::vector<std::vector<CVC4::Type>>>& cargs, + std::vector<bool>& allow_const, + std::vector<std::vector<std::string>>& unresolved_gterm_sym); + + bool popSygusDatatypeDef( + std::vector<CVC4::Datatype>& datatypes, + std::vector<CVC4::Type>& sorts, + std::vector<std::vector<CVC4::Expr>>& ops, + std::vector<std::vector<std::string>>& cnames, + std::vector<std::vector<std::vector<CVC4::Type>>>& cargs, + std::vector<bool>& allow_const, + std::vector<std::vector<std::string>>& unresolved_gterm_sym); void setSygusStartIndex(const std::string& fun, int startIndex, |