mirror of
https://github.com/Z3Prover/z3
synced 2025-04-25 01:55:32 +00:00
Z3 sources
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
3f9edad676
commit
e9eab22e5c
1186 changed files with 381859 additions and 0 deletions
128
lib/params.h
Normal file
128
lib/params.h
Normal file
|
@ -0,0 +1,128 @@
|
|||
/*++
|
||||
Copyright (c) 2011 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
params.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Parameters.
|
||||
|
||||
Author:
|
||||
|
||||
Leonardo (leonardo) 2011-04-22
|
||||
|
||||
Notes:
|
||||
|
||||
--*/
|
||||
#ifndef _PARAMS_H_
|
||||
#define _PARAMS_H_
|
||||
|
||||
#include"cmd_context_types.h"
|
||||
#include"vector.h"
|
||||
class ast;
|
||||
class ast_manager;
|
||||
|
||||
typedef cmd_arg_kind param_kind;
|
||||
|
||||
class params;
|
||||
class param_descrs;
|
||||
|
||||
class params_ref {
|
||||
params * m_params;
|
||||
void init();
|
||||
void copy_core(params const * p);
|
||||
public:
|
||||
params_ref():m_params(0) {}
|
||||
params_ref(params_ref const & p);
|
||||
~params_ref();
|
||||
|
||||
params_ref & operator=(params_ref const & p);
|
||||
|
||||
// copy params from p
|
||||
void copy(params_ref const & src);
|
||||
void append(params_ref const & src) { copy(src); }
|
||||
|
||||
bool get_bool(symbol const & k, bool _default) const;
|
||||
bool get_bool(char const * k, bool _default) const;
|
||||
unsigned get_uint(symbol const & k, unsigned _default) const;
|
||||
unsigned get_uint(char const * k, unsigned _default) const;
|
||||
double get_double(symbol const & k, double _default) const;
|
||||
double get_double(char const * k, double _default) const;
|
||||
char const * get_str(symbol const & k, char const * _default) const;
|
||||
char const * get_str(char const * k, char const * _default) const;
|
||||
rational get_rat(symbol const & k, rational const & _default) const;
|
||||
rational get_rat(char const * k, rational const & _default) const;
|
||||
symbol get_sym(symbol const & k, symbol const & _default) const;
|
||||
symbol get_sym(char const * k, symbol const & _default) const;
|
||||
expr * get_expr(symbol const & k, expr * _default) const;
|
||||
expr * get_expr(char const * k, expr * _default) const;
|
||||
func_decl * get_func_decl(symbol const & k, func_decl * _default) const;
|
||||
func_decl * get_func_decl(char const * k, func_decl * _default) const;
|
||||
sort * get_sort(symbol const & k, sort * _default) const;
|
||||
sort * get_sort(char const * k, sort * _default) const;
|
||||
|
||||
void set_manager(ast_manager & m);
|
||||
|
||||
bool empty() const;
|
||||
bool contains(symbol const & k) const;
|
||||
bool contains(char const * k) const;
|
||||
|
||||
void reset();
|
||||
void reset(symbol const & k);
|
||||
void reset(char const * k);
|
||||
|
||||
void set_bool(symbol const & k, bool v);
|
||||
void set_bool(char const * k, bool v);
|
||||
void set_uint(symbol const & k, unsigned v);
|
||||
void set_uint(char const * k, unsigned v);
|
||||
void set_double(symbol const & k, double v);
|
||||
void set_double(char const * k, double v);
|
||||
void set_str(symbol const & k, char const * v);
|
||||
void set_str(char const * k, char const * v);
|
||||
void set_rat(symbol const & k, rational const & v);
|
||||
void set_rat(char const * k, rational const & v);
|
||||
void set_sym(symbol const & k, symbol const & v);
|
||||
void set_sym(char const * k, symbol const & v);
|
||||
void set_expr(symbol const & k, expr * v);
|
||||
void set_expr(char const * k, expr * v);
|
||||
void set_func_decl(symbol const & k, func_decl * v);
|
||||
void set_func_decl(char const * k, func_decl * v);
|
||||
void set_sort(symbol const & k, sort * v);
|
||||
void set_sort(char const * k, sort * v);
|
||||
|
||||
void display(std::ostream & out) const;
|
||||
|
||||
void validate(param_descrs const & p) const;
|
||||
};
|
||||
|
||||
inline std::ostream & operator<<(std::ostream & out, params_ref const & ref) {
|
||||
ref.display(out);
|
||||
return out;
|
||||
}
|
||||
|
||||
class param_descrs {
|
||||
struct imp;
|
||||
imp * m_imp;
|
||||
public:
|
||||
param_descrs();
|
||||
~param_descrs();
|
||||
void insert(char const * name, param_kind k, char const * descr);
|
||||
void insert(symbol const & name, param_kind k, char const * descr);
|
||||
void erase(char const * name);
|
||||
void erase(symbol const & name);
|
||||
param_kind get_kind(char const * name) const;
|
||||
param_kind get_kind(symbol const & name) const;
|
||||
void display(std::ostream & out, unsigned indent = 0) const;
|
||||
unsigned size() const;
|
||||
symbol get_param_name(unsigned idx) const;
|
||||
};
|
||||
|
||||
void insert_max_memory(param_descrs & r);
|
||||
void insert_max_steps(param_descrs & r);
|
||||
void insert_produce_models(param_descrs & r);
|
||||
void insert_produce_proofs(param_descrs & r);
|
||||
void insert_timeout(param_descrs & r);
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue