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
00038 #ifndef __NUSMV_CORE_COMPILE_SYMB_TABLE_SYMB_CACHE_H__
00039 #define __NUSMV_CORE_COMPILE_SYMB_TABLE_SYMB_CACHE_H__
00040
00041 #include "nusmv/core/compile/symb_table/SymbType.h"
00042 #include "nusmv/core/node/node.h"
00043 #include "nusmv/core/utils/utils.h"
00044 #include "nusmv/core/utils/NodeList.h"
00045 #include "nusmv/core/compile/symb_table/NFunction.h"
00046
00058 typedef struct SymbCache_TAG* SymbCache_ptr;
00059
00065 #define SYMB_CACHE(x) \
00066 ((SymbCache_ptr) x)
00067
00073 #define SYMB_CACHE_CHECK_INSTANCE(x) \
00074 ( nusmv_assert(SYMB_CACHE(x) != SYMB_CACHE(NULL)) )
00075
00076
00077
00078
00079
00080
00087 NuSMVEnv_ptr SymbCache_get_environment(const SymbCache_ptr self);
00088
00095 SymbType_ptr
00096 SymbCache_get_var_type(const SymbCache_ptr self, const node_ptr name);
00097
00104 node_ptr
00105 SymbCache_get_define_body(const SymbCache_ptr self,
00106 const node_ptr name);
00107
00114 node_ptr
00115 SymbCache_get_actual_parameter(const SymbCache_ptr self,
00116 const node_ptr name);
00117
00124 node_ptr
00125 SymbCache_get_array_define_body(const SymbCache_ptr self,
00126 const node_ptr name);
00127
00134 SymbType_ptr
00135 SymbCache_get_variable_array_type(const SymbCache_ptr self,
00136 const node_ptr name);
00137
00142 SymbType_ptr
00143 SymbCache_get_function_type(const SymbCache_ptr self,
00144 const node_ptr name);
00145
00152 node_ptr
00153 SymbCache_get_define_flatten_body(const SymbCache_ptr self,
00154 const node_ptr name);
00155
00163 node_ptr
00164 SymbCache_get_flatten_actual_parameter(const SymbCache_ptr self,
00165 const node_ptr name);
00166
00173 node_ptr
00174 SymbCache_get_define_context(const SymbCache_ptr self,
00175 const node_ptr name);
00176
00183 node_ptr
00184 SymbCache_get_function_context(const SymbCache_ptr self,
00185 const node_ptr name);
00186
00194 node_ptr
00195 SymbCache_get_actual_parameter_context(const SymbCache_ptr self,
00196 const node_ptr name);
00197
00204 node_ptr
00205 SymbCache_get_array_define_context(const SymbCache_ptr self,
00206 const node_ptr name);
00207
00214 boolean
00215 SymbCache_is_symbol_state_var(const SymbCache_ptr self,
00216 const node_ptr name);
00217
00225 boolean
00226 SymbCache_is_symbol_frozen_var(const SymbCache_ptr self,
00227 const node_ptr name);
00228
00236 boolean
00237 SymbCache_is_symbol_state_frozen_var(const SymbCache_ptr self,
00238 const node_ptr name);
00239
00247 boolean
00248 SymbCache_is_symbol_input_var(const SymbCache_ptr self,
00249 const node_ptr name);
00250
00258 boolean
00259 SymbCache_is_symbol_var(const SymbCache_ptr self, const node_ptr name);
00260
00267 boolean
00268 SymbCache_is_symbol_declared(const SymbCache_ptr self,
00269 const node_ptr name);
00270
00278 boolean
00279 SymbCache_is_symbol_define(const SymbCache_ptr self,
00280 const node_ptr name);
00281
00289 boolean
00290 SymbCache_is_symbol_function(const SymbCache_ptr self,
00291 const node_ptr name);
00292
00300 boolean
00301 SymbCache_is_symbol_parameter(const SymbCache_ptr self,
00302 const node_ptr name);
00303
00311 boolean
00312 SymbCache_is_symbol_array_define(const SymbCache_ptr self,
00313 const node_ptr name);
00314
00322 boolean
00323 SymbCache_is_symbol_variable_array(const SymbCache_ptr self,
00324 const node_ptr name);
00325
00326
00334 boolean
00335 SymbCache_is_symbol_constant(const SymbCache_ptr self,
00336 const node_ptr name);
00337
00346 boolean
00347 SymbCache_list_contains_input_var(const SymbCache_ptr self,
00348 const NodeList_ptr var_list);
00349
00358 boolean
00359 SymbCache_list_contains_state_frozen_var(const SymbCache_ptr self,
00360 const NodeList_ptr var_list);
00361
00370 boolean
00371 SymbCache_list_contains_undef_var(const SymbCache_ptr self,
00372 const NodeList_ptr var_list);
00373
00374
00375
00376 #endif