diff --git a/src/ast/arith_decl_plugin.h b/src/ast/arith_decl_plugin.h index a57d7ce07..4b565c297 100644 --- a/src/ast/arith_decl_plugin.h +++ b/src/ast/arith_decl_plugin.h @@ -472,6 +472,7 @@ public: app * mk_divides(expr* arg1, expr* arg2) { return m_manager.mk_app(arith_family_id, OP_IDIVIDES, arg1, arg2); } app * mk_add(unsigned num_args, expr * const * args) const { return num_args == 1 && is_app(args[0]) ? to_app(args[0]) : m_manager.mk_app(arith_family_id, OP_ADD, num_args, args); } + app * mk_add(std::initializer_list args) const { return mk_add(args.size(), args.begin()); } app * mk_add(expr * arg1, expr * arg2) const { return m_manager.mk_app(arith_family_id, OP_ADD, arg1, arg2); } app * mk_add(expr * arg1, expr * arg2, expr* arg3) const { return m_manager.mk_app(arith_family_id, OP_ADD, arg1, arg2, arg3); } app * mk_add(expr_ref_vector const& args) const { return mk_add(args.size(), args.data()); } @@ -481,9 +482,11 @@ public: app * mk_sub(expr * arg1, expr * arg2) const { return m_manager.mk_app(arith_family_id, OP_SUB, arg1, arg2); } app * mk_sub(unsigned num_args, expr * const * args) const { return m_manager.mk_app(arith_family_id, OP_SUB, num_args, args); } + app * mk_sub(std::initializer_list args) const { return mk_sub(args.size(), args.begin()); } app * mk_mul(expr * arg1, expr * arg2) const { return m_manager.mk_app(arith_family_id, OP_MUL, arg1, arg2); } app * mk_mul(expr * arg1, expr * arg2, expr* arg3) const { return m_manager.mk_app(arith_family_id, OP_MUL, arg1, arg2, arg3); } app * mk_mul(unsigned num_args, expr * const * args) const { return num_args == 1 && is_app(args[0]) ? to_app(args[0]) : m_manager.mk_app(arith_family_id, OP_MUL, num_args, args); } + app * mk_mul(std::initializer_list args) const { return mk_mul(args.size(), args.begin()); } app * mk_mul(ptr_buffer const& args) const { return mk_mul(args.size(), args.data()); } app * mk_mul(ptr_vector const& args) const { return mk_mul(args.size(), args.data()); } app * mk_mul(expr_ref_vector const& args) const { return mk_mul(args.size(), args.data()); } @@ -502,13 +505,13 @@ public: app * mk_power(expr* arg1, expr* arg2) { return m_manager.mk_app(arith_family_id, OP_POWER, arg1, arg2); } app * mk_power0(expr* arg1, expr* arg2) { return m_manager.mk_app(arith_family_id, OP_POWER0, arg1, arg2); } - app* mk_band(unsigned n, expr* arg1, expr* arg2) { parameter p(n); expr* args[2] = { arg1, arg2 }; return m_manager.mk_app(arith_family_id, OP_ARITH_BAND, 1, &p, 2, args); } + app* mk_band(unsigned n, expr* arg1, expr* arg2) { return mk_band(n, {arg1, arg2}); } app* mk_band(unsigned n, std::initializer_list args) { parameter p(n); return m_manager.mk_app(arith_family_id, OP_ARITH_BAND, 1, &p, args.size(), args.begin()); } - app* mk_shl(unsigned n, expr* arg1, expr* arg2) { parameter p(n); expr* args[2] = { arg1, arg2 }; return m_manager.mk_app(arith_family_id, OP_ARITH_SHL, 1, &p, 2, args); } + app* mk_shl(unsigned n, expr* arg1, expr* arg2) { return mk_shl(n, {arg1, arg2}); } app* mk_shl(unsigned n, std::initializer_list args) { parameter p(n); return m_manager.mk_app(arith_family_id, OP_ARITH_SHL, 1, &p, args.size(), args.begin()); } - app* mk_ashr(unsigned n, expr* arg1, expr* arg2) { parameter p(n); expr* args[2] = { arg1, arg2 }; return m_manager.mk_app(arith_family_id, OP_ARITH_ASHR, 1, &p, 2, args); } + app* mk_ashr(unsigned n, expr* arg1, expr* arg2) { return mk_ashr(n, {arg1, arg2}); } app* mk_ashr(unsigned n, std::initializer_list args) { parameter p(n); return m_manager.mk_app(arith_family_id, OP_ARITH_ASHR, 1, &p, args.size(), args.begin()); } - app* mk_lshr(unsigned n, expr* arg1, expr* arg2) { parameter p(n); expr* args[2] = { arg1, arg2 }; return m_manager.mk_app(arith_family_id, OP_ARITH_LSHR, 1, &p, 2, args); } + app* mk_lshr(unsigned n, expr* arg1, expr* arg2) { return mk_lshr(n, {arg1, arg2}); } app* mk_lshr(unsigned n, std::initializer_list args) { parameter p(n); return m_manager.mk_app(arith_family_id, OP_ARITH_LSHR, 1, &p, args.size(), args.begin()); } app * mk_sin(expr * arg) { return m_manager.mk_app(arith_family_id, OP_SIN, arg); } diff --git a/src/ast/ast.h b/src/ast/ast.h index d96958a3d..b0ae34c41 100644 --- a/src/ast/ast.h +++ b/src/ast/ast.h @@ -2201,16 +2201,19 @@ public: app * mk_xor(expr * lhs, expr * rhs) { return mk_app(basic_family_id, OP_XOR, lhs, rhs); } app * mk_ite(expr * c, expr * t, expr * e) { return mk_app(basic_family_id, OP_ITE, c, t, e); } app * mk_xor(unsigned num_args, expr * const * args) { return mk_app(basic_family_id, OP_XOR, num_args, args); } + app * mk_xor(std::initializer_list args) { return mk_xor(args.size(), args.begin()); } app * mk_xor(ptr_buffer const& args) { return mk_xor(args.size(), args.data()); } app * mk_xor(ptr_vector const& args) { return mk_xor(args.size(), args.data()); } app * mk_xor(ref_buffer const& args) { return mk_xor(args.size(), args.data()); } app * mk_or(unsigned num_args, expr * const * args) { return mk_app(basic_family_id, OP_OR, num_args, args); } + app * mk_or(std::initializer_list args) { return mk_or(std::span(args.begin(), args.size())); } app * mk_and(std::span args) { return mk_app(basic_family_id, OP_AND, args); } + app * mk_and(std::initializer_list args) { return mk_and(std::span(args.begin(), args.size())); } app * mk_or(std::span args) { return mk_app(basic_family_id, OP_OR, args); } app * mk_or(expr * arg1, expr * arg2) { return mk_app(basic_family_id, OP_OR, arg1, arg2); } app * mk_and(expr * arg1, expr * arg2) { return mk_app(basic_family_id, OP_AND, arg1, arg2); } app * mk_or(expr * arg1, expr * arg2, expr * arg3) { return mk_app(basic_family_id, OP_OR, arg1, arg2, arg3); } - app * mk_or(expr* a, expr* b, expr* c, expr* d) { expr* args[4] = { a, b, c, d }; return mk_app(basic_family_id, OP_OR, 4, args); } + app * mk_or(expr* a, expr* b, expr* c, expr* d) { return mk_or({a, b, c, d}); } app * mk_and(expr * arg1, expr * arg2, expr * arg3) { return mk_app(basic_family_id, OP_AND, arg1, arg2, arg3); } app * mk_and(ref_vector const& args) { return mk_and(std::span(args.data(), args.size())); } diff --git a/src/ast/bv_decl_plugin.h b/src/ast/bv_decl_plugin.h index 3a4b50c9e..b0b19129f 100644 --- a/src/ast/bv_decl_plugin.h +++ b/src/ast/bv_decl_plugin.h @@ -512,10 +512,10 @@ public: app * mk_bv_xor(unsigned num, expr * const * args) { return m_manager.mk_app(get_fid(), OP_BXOR, num, args); } app * mk_bv_xor(std::initializer_list args) { return m_manager.mk_app(get_fid(), OP_BXOR, args.size(), args.begin()); } - app * mk_concat(expr * arg1, expr * arg2) { expr * args[2] = { arg1, arg2 }; return mk_concat(2, args); } - app * mk_bv_and(expr* x, expr* y) { expr* args[2] = { x, y }; return mk_bv_and(2, args); } - app * mk_bv_or(expr* x, expr* y) { expr* args[2] = { x, y }; return mk_bv_or(2, args); } - app * mk_bv_xor(expr* x, expr* y) { expr* args[2] = { x, y }; return mk_bv_xor(2, args); } + app * mk_concat(expr * arg1, expr * arg2) { return mk_concat({arg1, arg2}); } + app * mk_bv_and(expr* x, expr* y) { return mk_bv_and({x, y}); } + app * mk_bv_or(expr* x, expr* y) { return mk_bv_or({x, y}); } + app * mk_bv_xor(expr* x, expr* y) { return mk_bv_xor({x, y}); } app * mk_bv_not(expr * arg) { return m_manager.mk_app(get_fid(), OP_BNOT, arg); } app * mk_bv_neg(expr * arg) { return m_manager.mk_app(get_fid(), OP_BNEG, arg); }