diff options
Diffstat (limited to 'src/parser/cvc/Cvc.g')
-rw-r--r-- | src/parser/cvc/Cvc.g | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/parser/cvc/Cvc.g b/src/parser/cvc/Cvc.g index fb0304045..d72e1526e 100644 --- a/src/parser/cvc/Cvc.g +++ b/src/parser/cvc/Cvc.g @@ -1689,17 +1689,22 @@ bvNegTerm[CVC4::Expr& f] /* BV neg */ : BVNEG_TOK bvNegTerm[f] { f = MK_EXPR(CVC4::kind::BITVECTOR_NOT, f); } - | NOT_TOK bvNegTerm[f] + | relationTerm[f] + ; + +relationTerm[CVC4::Expr& f] + /* relation terms */ + : NOT_TOK relationTerm[f] { f = MK_EXPR(CVC4::kind::COMPLEMENT, f); } - | TRANSPOSE_TOK bvNegTerm[f] + | TRANSPOSE_TOK relationTerm[f] { f = MK_EXPR(CVC4::kind::TRANSPOSE, f); } - | TRANSCLOSURE_TOK bvNegTerm[f] + | TRANSCLOSURE_TOK relationTerm[f] { f = MK_EXPR(CVC4::kind::TCLOSURE, f); } - | TUPLE_TOK LPAREN bvNegTerm[f] RPAREN + | TUPLE_TOK LPAREN relationTerm[f] RPAREN { std::vector<Type> types; std::vector<Expr> args; args.push_back(f); - types.push_back(f.getType()); + types.push_back(f.getType()); DatatypeType t = EXPR_MANAGER->mkTupleType(types); const Datatype& dt = t.getDatatype(); args.insert( args.begin(), dt[0].getConstructor() ); |