00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00039 #ifndef __NUSMV_CORE_CINIT_NU_SMVENV_H__
00040 #define __NUSMV_CORE_CINIT_NU_SMVENV_H__
00041
00042 #include "nusmv/core/utils/defs.h"
00043 #include "cudd/st.h"
00044
00051 typedef struct NuSMVEnv_TAG* NuSMVEnv_ptr;
00052
00059 #define NUSMV_ENV(self) \
00060 ((NuSMVEnv_ptr) self)
00061
00067 #define NUSMV_ENV_CHECK_INSTANCE(self) \
00068 (nusmv_assert(NUSMV_ENV(self) != NUSMV_ENV(NULL)))
00069
00070
00071
00072
00073
00074
00080 #define ENV_LOGGER "+!_logger"
00081
00087 #define ENV_STREAM_MANAGER "+\"_stream_mgr"
00088
00094 #define ENV_STRING_MGR "+#_ustring_manager"
00095
00101 #define ENV_WORD_NUMBER_MGR "+$_word_number_mgr"
00102
00108 #define ENV_NODE_MGR "+%_node_manager"
00109
00115 #define ENV_ERROR_MANAGER "+&_error_manager"
00116
00122 #define ENV_EXPR_MANAGER "+'_expr_manager"
00123
00129 #define ENV_WFF_PRINTER "+(_wff_printer"
00130
00136 #define ENV_IWFF_PRINTER "+)_iwff_printer"
00137
00143 #define ENV_SEXP_PRINTER "+*_sexp_printer"
00144
00150 #define ENV_NODE_NORMALIZER "++_normalizer"
00151
00157 #define ENV_OPTS_HANDLER "+,_opts_handler"
00158
00164 #define ENV_SYMB_TABLE "+-_symb_table"
00165
00171 #define ENV_FLAT_HIERARCHY "+._flat_hierarchy"
00172
00178 #define ENV_PROP_DB "+/_prop_db"
00179
00185 #define ENV_HRC_HIERARCHY "+0_hrc_hierarchy"
00186
00192 #define ENV_FSM_BUILDER "+1_fsm_builder"
00193
00199 #define ENV_DD_MGR "+2_dd_manager"
00200
00206 #define ENV_DD_VARS_HANDLER "+3_dd_vars_hand"
00207
00213 #define ENV_TRACE_MGR "+4_trace_mgr"
00214
00220 #define ENV_SEXP_FSM "+5_sexp_fsm"
00221
00227 #define ENV_BOOL_FSM "+6_bool_fsm"
00228
00234 #define ENV_BDD_FSM "+7_bdd_fsm"
00235
00241 #define ENV_BE_FSM "+8_be_fsm"
00242
00248 #define ENV_BOOL_ENCODER "+9_bool_enc"
00249
00255 #define ENV_BDD_ENCODER "+:_bdd_enc"
00256
00262 #define ENV_BE_ENCODER "+;_be_enc"
00263
00269 #define ENV_MSAT_ENCODER "+<_msat_enc"
00270
00276 #define ENV_FLATTENER "+=_flattener"
00277
00283 #define ENV_DEPENDENCY "+>_dependency"
00284
00290 #define ENV_MASTER_LOGIC_RECOGNIZER "+?_master_logic_recognizer"
00291
00292
00295
00296
00297
00298
00299
00308 NuSMVEnv_ptr NuSMVEnv_create(void);
00309
00318 void NuSMVEnv_destroy(NuSMVEnv_ptr self);
00319
00320
00321
00322
00344 void* NuSMVEnv_get_value(const NuSMVEnv_ptr self, const char* key);
00345
00354 boolean NuSMVEnv_has_value(const NuSMVEnv_ptr self, const char* key);
00355
00377 void NuSMVEnv_set_value(NuSMVEnv_ptr self, const char* key, void* value);
00378
00400 void* NuSMVEnv_set_or_replace_value(NuSMVEnv_ptr self,
00401 const char* key,
00402 void* value);
00403
00413 void* NuSMVEnv_remove_value(NuSMVEnv_ptr self, const char* key);
00414
00423 boolean NuSMVEnv_get_flag(NuSMVEnv_ptr self, const char* flag);
00424
00431 void NuSMVEnv_set_flag(NuSMVEnv_ptr self,
00432 const char* flag, boolean value);
00433
00442 boolean NuSMVEnv_has_flag(NuSMVEnv_ptr self, const char* flag);
00443
00451 boolean NuSMVEnv_remove_flag(NuSMVEnv_ptr self, const char* flag);
00452
00453
00454
00455
00474 st_table* NuSMVEnv_get_handled_hash_ptr(NuSMVEnv_ptr self,
00475 const char* key);
00476
00481 #endif