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

move to abstract symbols

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-01-10 12:14:13 -08:00
parent 78a1736bd2
commit 541658fe02
16 changed files with 117 additions and 93 deletions

View file

@ -319,9 +319,22 @@ class params {
unsigned m_uint_value;
double m_double_value;
char const * m_str_value;
char const * m_sym_value;
symbol m_sym_value;
rational * m_rat_value;
};
value() : m_kind(CPK_BOOL), m_bool_value(false) {}
value& operator=(value const& other) {
m_kind = other.m_kind;
switch (m_kind) {
case CPK_BOOL: m_bool_value = other.m_bool_value; break;
case CPK_UINT: m_uint_value = other.m_uint_value; break;
case CPK_DOUBLE: m_double_value = other.m_double_value; break;
case CPK_STRING: m_str_value = other.m_str_value; break;
case CPK_SYMBOL: m_sym_value = other.m_sym_value; break;
default: m_rat_value = other.m_rat_value; break;
}
return *this;
}
};
typedef std::pair<symbol, value> entry;
svector<entry> m_entries;
@ -422,7 +435,7 @@ public:
out << " " << *(e.second.m_rat_value);
break;
case CPK_SYMBOL:
out << " " << symbol::mk_symbol_from_c_ptr(e.second.m_sym_value);
out << " " << e.second.m_sym_value;
break;
case CPK_STRING:
out << " " << e.second.m_str_value;
@ -455,7 +468,7 @@ public:
out << " " << *(e.second.m_rat_value);
break;
case CPK_SYMBOL:
out << " " << symbol::mk_symbol_from_c_ptr(e.second.m_sym_value);
out << " " << e.second.m_sym_value;
break;
case CPK_STRING:
out << " " << e.second.m_str_value;
@ -486,7 +499,7 @@ public:
out << *(e.second.m_rat_value);
return;
case CPK_SYMBOL:
out << symbol::mk_symbol_from_c_ptr(e.second.m_sym_value);
out << e.second.m_sym_value;
return;
case CPK_STRING:
out << e.second.m_str_value;
@ -576,7 +589,7 @@ void params_ref::copy_core(params const * src) {
m_params->set_rat(p.first, *(p.second.m_rat_value));
break;
case CPK_SYMBOL:
m_params->set_sym(p.first, symbol::mk_symbol_from_c_ptr(p.second.m_sym_value));
m_params->set_sym(p.first, p.second.m_sym_value);
break;
case CPK_STRING:
m_params->set_str(p.first, p.second.m_str_value);
@ -887,11 +900,11 @@ rational params::get_rat(char const * k, rational const & _default) const {
}
symbol params::get_sym(symbol const & k, symbol const & _default) const {
GET_VALUE(return symbol::mk_symbol_from_c_ptr(it->second.m_sym_value);, CPK_SYMBOL);
GET_VALUE(return it->second.m_sym_value;, CPK_SYMBOL);
}
symbol params::get_sym(char const * k, symbol const & _default) const {
GET_VALUE(return symbol::mk_symbol_from_c_ptr(it->second.m_sym_value);, CPK_SYMBOL);
GET_VALUE(return it->second.m_sym_value;, CPK_SYMBOL);
}
#define GET_VALUE2(MATCH_CODE, KIND) { \
@ -925,7 +938,7 @@ char const * params::get_str(char const * k, params_ref const & fallback, char c
}
symbol params::get_sym(char const * k, params_ref const & fallback, symbol const & _default) const {
GET_VALUE2(return symbol::mk_symbol_from_c_ptr(it->second.m_sym_value);, CPK_SYMBOL);
GET_VALUE2(return it->second.m_sym_value;, CPK_SYMBOL);
return fallback.get_sym(k, _default);
}