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