summaryrefslogtreecommitdiff
path: root/src/parser/smt2/smt2.h
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2015-06-10 11:26:51 +0200
committerajreynol <andrew.j.reynolds@gmail.com>2015-06-10 11:26:57 +0200
commit6417016a38e24b09bc062a4bd4b0a5945fbcc0ec (patch)
treee2c9987d6545bdad385bf101ca2c4b198bcc318a /src/parser/smt2/smt2.h
parent74122fe04d641d3d416a53783bd075ca9491c0b7 (diff)
Parse support for sygus LetGTerm.
Diffstat (limited to 'src/parser/smt2/smt2.h')
-rw-r--r--src/parser/smt2/smt2.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/parser/smt2/smt2.h b/src/parser/smt2/smt2.h
index 166f15640..6781fec95 100644
--- a/src/parser/smt2/smt2.h
+++ b/src/parser/smt2/smt2.h
@@ -201,8 +201,21 @@ public:
std::vector< std::vector<CVC4::Expr> >& ops,
std::vector< std::vector<std::string> >& cnames,
std::vector< std::vector< std::vector< CVC4::Type > > >& cargs,
- std::map< CVC4::Type, CVC4::Type >& sygus_to_builtin, Type sub_ret );
+ std::map< CVC4::Type, CVC4::Type >& sygus_to_builtin,
+ std::map< CVC4::Type, CVC4::Expr >& sygus_to_builtin_expr, Type sub_ret );
+ void processSygusLetConstructor( std::vector< CVC4::Expr >& let_vars,
+ int index, int start_index,
+ 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<CVC4::Expr>& sygus_vars,
+ std::map< CVC4::Type, CVC4::Type >& sygus_to_builtin,
+ std::map< CVC4::Type, CVC4::Expr >& sygus_to_builtin_expr );
+
+
void addSygusFun(const std::string& fun, Expr eval) {
d_sygusFuns.push_back(std::make_pair(fun, eval));
}
@@ -285,6 +298,11 @@ public:
}
private:
+ std::map< CVC4::Expr, CVC4::Type > d_sygus_bound_var_type;
+ std::map< CVC4::Expr, std::vector< CVC4::Expr > > d_sygus_let_func_to_vars;
+ std::map< CVC4::Expr, CVC4::Expr > d_sygus_let_func_to_body;
+
+ void collectSygusLetArgs( CVC4::Expr e, std::vector< CVC4::Type >& sygusArgs, std::vector< CVC4::Expr >& builtinArgs );
void addArithmeticOperators();
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback