3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-28 17:08:45 +00:00

make front_end_params an optional argument in cmd_context

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2012-10-31 09:43:46 -07:00
parent bef9390142
commit c2e95bb0c5
7 changed files with 26 additions and 19 deletions

View file

@ -133,7 +133,8 @@ public:
protected:
bool m_main_ctx;
front_end_params & m_params;
front_end_params * m_params;
bool m_params_owner;
symbol m_logic;
bool m_interactive_mode;
bool m_global_decls;
@ -246,9 +247,9 @@ protected:
void print_unsupported_info(symbol const& s) { if (s != symbol::null) diagnostic_stream() << "; " << s << std::endl;}
public:
cmd_context(front_end_params & params, bool main_ctx = true, ast_manager * m = 0, symbol const & l = symbol::null);
cmd_context(front_end_params * params = 0, bool main_ctx = true, ast_manager * m = 0, symbol const & l = symbol::null);
~cmd_context();
bool is_smtlib2_compliant() const { return m_params.m_smtlib2_compliant; }
bool is_smtlib2_compliant() const { return params().m_smtlib2_compliant; }
void set_logic(symbol const & s);
bool has_logic() const { return m_logic != symbol::null; }
symbol const & get_logic() const { return m_logic; }
@ -268,8 +269,8 @@ public:
void set_global_decls(bool flag) { SASSERT(!has_manager()); m_global_decls = flag; }
unsigned random_seed() const { return m_random_seed; }
void set_random_seed(unsigned s) { m_random_seed = s; }
bool produce_models() const { return m_params.m_model; }
bool produce_proofs() const { return m_params.m_proof_mode != PGM_DISABLED; }
bool produce_models() const { return params().m_model; }
bool produce_proofs() const { return params().m_proof_mode != PGM_DISABLED; }
bool produce_unsat_cores() const { return m_produce_unsat_cores; }
void set_produce_unsat_cores(bool flag) { m_produce_unsat_cores = flag; }
bool produce_assignments() const { return m_produce_assignments; }
@ -283,7 +284,7 @@ public:
virtual ast_manager & get_ast_manager() { return m(); }
pdecl_manager & pm() const { if (!m_pmanager) const_cast<cmd_context*>(this)->init_manager(); return *m_pmanager; }
sexpr_manager & sm() const { if (!m_sexpr_manager) const_cast<cmd_context*>(this)->m_sexpr_manager = alloc(sexpr_manager); return *m_sexpr_manager; }
front_end_params & params() const { return m_params; }
front_end_params & params() const { return *m_params; }
void set_solver(solver * s);
solver * get_solver() const { return m_solver.get(); }