summaryrefslogtreecommitdiff
path: root/src/parser/smt2
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2019-12-06 11:00:33 -0600
committerGitHub <noreply@github.com>2019-12-06 11:00:33 -0600
commitc7c2d593674e3776ab0c720be1c0c759db8f9453 (patch)
treefc129a2f0453eb2944009249c4a83ba3bdbaf5a0 /src/parser/smt2
parent499aa5641e2b830f60159c2ce1c791bf4d45aac1 (diff)
Add ExprManager as argument to Datatype (#3535)
Diffstat (limited to 'src/parser/smt2')
-rw-r--r--src/parser/smt2/Smt2.g8
-rw-r--r--src/parser/smt2/smt2.cpp2
-rw-r--r--src/parser/smt2/smt2.h35
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,
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback