summaryrefslogtreecommitdiff
path: root/src/expr/expr_template.cpp
diff options
context:
space:
mode:
authorKshitij Bansal <kshitij@cs.nyu.edu>2012-09-08 14:25:25 +0000
committerKshitij Bansal <kshitij@cs.nyu.edu>2012-09-08 14:25:25 +0000
commitcfa9e2cbbdf77a325791b5548b41093a0781311c (patch)
treee843d38afe4b197a2dd81316998477cedac26c52 /src/expr/expr_template.cpp
parent6935324f45bd7f2c735ca4120a9e800ef8903442 (diff)
Single driver for both sequential and portfolio
A "command executer" layer between parsing commands and invoking them. New implementation of portfolio driver splits only when check-sat or query command is encountered, and then switches back to sequential till the next one. As side effect, restores functionality of interactive mode and push/pops.
Diffstat (limited to 'src/expr/expr_template.cpp')
-rw-r--r--src/expr/expr_template.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/expr/expr_template.cpp b/src/expr/expr_template.cpp
index a6f9f2cf6..4009bc610 100644
--- a/src/expr/expr_template.cpp
+++ b/src/expr/expr_template.cpp
@@ -131,7 +131,19 @@ Node exportInternal(TNode n, ExprManager* from, ExprManager* to, ExprManagerMapC
// temporarily set the node manager to NULL; this gets around
// a check that mkVar isn't called internally
NodeManagerScope nullScope(NULL);
- to_e = to->mkVar(name, type);// FIXME thread safety
+
+ if(n.getKind() == kind::BOUND_VAR_LIST) {
+ to_e = to->mkBoundVar(name, type);// FIXME thread safety
+ } else if(n.getKind() == kind::VARIABLE) {
+ to_e = to->mkVar(name, type);// FIXME thread safety
+ } else if(n.getKind() == kind::SKOLEM) {
+ Assert(false, "Skolem exporting not yet supported properly.");
+ // to fix this, get the node manager and do the appropriate
+ to_e = to->mkVar(name, type);// FIXME thread safety
+ } else {
+ Unhandled();
+ }
+
Debug("export") << "+ exported var `" << from_e << "'[" << from_e.getId() << "] with name `" << name << "' and type `" << from_e.getType() << "' to `" << to_e << "'[" << to_e.getId() << "] with type `" << type << "'" << std::endl;
} else {
// temporarily set the node manager to NULL; this gets around
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback