mirror of
https://github.com/Z3Prover/z3
synced 2025-05-04 22:35:45 +00:00
update topological sort to use arrays instead of hash tables, expose Context over Z3Object for programmability
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
0e6c64510a
commit
51ed13f96a
17 changed files with 103 additions and 96 deletions
|
@ -572,7 +572,7 @@ protected:
|
|||
|
||||
decl(ast_kind k, symbol const & name, decl_info * info):ast(k), m_name(name), m_info(info) {}
|
||||
public:
|
||||
unsigned get_decl_id() const { SASSERT(get_id() >= c_first_decl_id); return get_id() - c_first_decl_id; }
|
||||
unsigned get_small_id() const { SASSERT(get_id() >= c_first_decl_id); return get_id() - c_first_decl_id; }
|
||||
symbol const & get_name() const { return m_name; }
|
||||
decl_info * get_info() const { return m_info; }
|
||||
family_id get_family_id() const { return m_info == nullptr ? null_family_id : m_info->get_family_id(); }
|
||||
|
@ -671,6 +671,9 @@ protected:
|
|||
public:
|
||||
|
||||
sort* get_sort() const;
|
||||
|
||||
unsigned get_small_id() const { return get_id(); }
|
||||
|
||||
};
|
||||
|
||||
// -----------------------------------
|
||||
|
@ -2573,7 +2576,7 @@ typedef ast_ref_fast_mark2 expr_ref_fast_mark2;
|
|||
when N is deleted.
|
||||
*/
|
||||
class ast_mark {
|
||||
struct decl2uint { unsigned operator()(decl const & d) const { return d.get_decl_id(); } };
|
||||
struct decl2uint { unsigned operator()(decl const & d) const { return d.get_small_id(); } };
|
||||
obj_mark<expr> m_expr_marks;
|
||||
obj_mark<decl, bit_vector, decl2uint> m_decl_marks;
|
||||
public:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue