diff options
author | Paul Meng <baolmeng@gmail.com> | 2017-03-20 13:49:31 -0500 |
---|---|---|
committer | Paul Meng <baolmeng@gmail.com> | 2017-03-20 13:49:31 -0500 |
commit | 00c03533135d14d0aaaf607fde8874f346af7dbc (patch) | |
tree | 812a8992f65de8aa45f620bcf279016f2e2e9469 /src | |
parent | 7f42b2d1ba3ed74b7d3c184a59c5416f584aa536 (diff) |
fixed cvc4 parser for set complement
Diffstat (limited to 'src')
-rw-r--r-- | src/parser/cvc/Cvc.g | 11 | ||||
-rw-r--r-- | src/printer/cvc/cvc_printer.cpp | 2 |
2 files changed, 5 insertions, 8 deletions
diff --git a/src/parser/cvc/Cvc.g b/src/parser/cvc/Cvc.g index d72e1526e..a5d5febe9 100644 --- a/src/parser/cvc/Cvc.g +++ b/src/parser/cvc/Cvc.g @@ -448,7 +448,7 @@ Expr createPrecedenceTree(Parser* parser, ExprManager* em, default: break; } Expr e = em->mkExpr(k, lhs, rhs); - return negate ? em->mkExpr(e.getType().isSet() ? kind::COMPLEMENT : kind::NOT, e) : e; + return negate ? em->mkExpr(kind::NOT, e) : e; }/* createPrecedenceTree() recursive variant */ Expr createPrecedenceTree(Parser* parser, ExprManager* em, @@ -474,9 +474,8 @@ Expr createPrecedenceTree(Parser* parser, ExprManager* em, /** Add n NOTs to the front of e and return the result. */ Expr addNots(ExprManager* em, size_t n, Expr e) { - Kind k = e.getType().isSet() ? kind::COMPLEMENT : kind::NOT; while(n-- > 0) { - e = em->mkExpr(k, e); + e = em->mkExpr(kind::NOT, e); } return e; }/* addNots() */ @@ -1688,15 +1687,13 @@ bvBinop[unsigned& op] bvNegTerm[CVC4::Expr& f] /* BV neg */ : BVNEG_TOK bvNegTerm[f] - { f = MK_EXPR(CVC4::kind::BITVECTOR_NOT, f); } + { f = f.getType().isSet() ? MK_EXPR(CVC4::kind::COMPLEMENT, f) : MK_EXPR(CVC4::kind::BITVECTOR_NOT, f); } | relationTerm[f] ; relationTerm[CVC4::Expr& f] /* relation terms */ - : NOT_TOK relationTerm[f] - { f = MK_EXPR(CVC4::kind::COMPLEMENT, f); } - | TRANSPOSE_TOK relationTerm[f] + : TRANSPOSE_TOK relationTerm[f] { f = MK_EXPR(CVC4::kind::TRANSPOSE, f); } | TRANSCLOSURE_TOK relationTerm[f] { f = MK_EXPR(CVC4::kind::TCLOSURE, f); } diff --git a/src/printer/cvc/cvc_printer.cpp b/src/printer/cvc/cvc_printer.cpp index 981e88a5c..c9a80d247 100644 --- a/src/printer/cvc/cvc_printer.cpp +++ b/src/printer/cvc/cvc_printer.cpp @@ -783,7 +783,7 @@ void CvcPrinter::toStream(std::ostream& out, TNode n, int depth, bool types, boo opType = INFIX; break; case kind::COMPLEMENT: - op << "NOT"; + op << "~"; opType = PREFIX; break; case kind::PRODUCT: |