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_PRIVATE_H__
00039 #define __NUSMV_CORE_COMPILE_SYMB_TABLE_SYMB_CACHE_PRIVATE_H__
00040
00041
00042 #include "nusmv/core/compile/symb_table/SymbCache.h"
00043 #include "nusmv/core/compile/symb_table/SymbTable.h"
00044
00045 #include "nusmv/core/utils/utils.h"
00046 #include "nusmv/core/compile/symb_table/NFunction.h"
00047 #include "nusmv/core/node/node.h"
00048
00049
00050
00051
00052
00053
00054
00055
00056
00064 SymbCache_ptr SymbCache_create(SymbTable_ptr symb_table,
00065 NuSMVEnv_ptr env);
00066
00073 void SymbCache_destroy(SymbCache_ptr self);
00074
00082 void
00083 SymbCache_new_input_var(SymbCache_ptr self,
00084 node_ptr var, SymbType_ptr type);
00085
00093 void
00094 SymbCache_new_state_var(SymbCache_ptr self,
00095 node_ptr var, SymbType_ptr type);
00096
00106 void
00107 SymbCache_new_frozen_var(SymbCache_ptr self,
00108 node_ptr var, SymbType_ptr type);
00109
00121 void
00122 SymbCache_redeclare_state_as_frozen_var(SymbCache_ptr self,
00123 node_ptr var);
00124
00133 void
00134 SymbCache_remove_var(SymbCache_ptr self, node_ptr var);
00135
00143 void
00144 SymbCache_new_define(SymbCache_ptr self,
00145 node_ptr name,
00146 node_ptr context, node_ptr definition);
00147
00155 void
00156 SymbCache_new_function(SymbCache_ptr self, node_ptr name,
00157 node_ptr context, SymbType_ptr type);
00158
00166 void
00167 SymbCache_new_parameter(SymbCache_ptr self,
00168 node_ptr formal,
00169 node_ptr context, node_ptr actual);
00170
00179 void
00180 SymbCache_new_array_define(SymbCache_ptr self, node_ptr name,
00181 node_ptr ctx, node_ptr definition);
00182
00190 void
00191 SymbCache_new_variable_array(SymbCache_ptr self, node_ptr name,
00192 SymbType_ptr type);
00193
00202 void
00203 SymbCache_remove_define(SymbCache_ptr self, node_ptr define);
00204
00213 void
00214 SymbCache_remove_function(SymbCache_ptr self, node_ptr name);
00215
00225 void
00226 SymbCache_new_constant(SymbCache_ptr self, node_ptr name);
00227
00238 void
00239 SymbCache_remove_constant(SymbCache_ptr self, node_ptr constant);
00240
00248 void
00249 SymbCache_remove_symbols(SymbCache_ptr self,
00250 const node_ptr* symbols,
00251 const unsigned int size);
00252
00260 SymbTableType
00261 SymbCache_get_symbol_type(const SymbCache_ptr self,
00262 const node_ptr symbol);
00263
00272 void
00273 SymbCache_gen_iter(const SymbCache_ptr self,
00274 SymbTableIter* iter,
00275 const unsigned int mask);
00276
00285 void
00286 SymbCache_next_iter(const SymbCache_ptr self,
00287 SymbTableIter* iter);
00288
00295 boolean SymbCache_is_iter_end(const SymbCache_ptr self,
00296 const SymbTableIter* iter);
00297
00304 node_ptr SymbCache_iter_get_symbol(const SymbCache_ptr self,
00305 const SymbTableIter* iter);
00306
00317 void SymbCache_iter_set_filter(const SymbCache_ptr self,
00318 SymbTableIter* iter,
00319 SymbTableIterFilterFun filter,
00320 void* arg);
00321
00328 int SymbCache_get_constants_num(const SymbCache_ptr self);
00329
00336 int SymbCache_get_state_vars_num(const SymbCache_ptr self);
00337
00344 int SymbCache_get_frozen_vars_num(const SymbCache_ptr self);
00345
00352 int SymbCache_get_input_vars_num(const SymbCache_ptr self);
00353
00360 int SymbCache_get_defines_num(const SymbCache_ptr self);
00361
00368 int SymbCache_get_functions_num(const SymbCache_ptr self);
00369
00376 int SymbCache_get_parameters_num(const SymbCache_ptr self);
00377
00384 int SymbCache_get_array_defines_num(const SymbCache_ptr self);
00385
00392 int SymbCache_get_variable_arrays_num(const SymbCache_ptr self);
00393
00400 int SymbCache_get_symbols_num(const SymbCache_ptr self);
00401
00402
00439 void
00440 SymbCache_add_trigger(const SymbCache_ptr self,
00441 SymbTableTriggerFun trigger,
00442 SymbTableTriggerAction action,
00443 void* arg1, boolean must_free_arg);
00444
00453 void
00454 SymbCache_remove_trigger(const SymbCache_ptr self,
00455 SymbTableTriggerFun trigger,
00456 SymbTableTriggerAction action);
00457
00458
00466 void SymbCache_remove_parameter(SymbCache_ptr self, node_ptr formal);
00467
00475 void SymbCache_remove_variable_array(SymbCache_ptr self, node_ptr symbol);
00476
00477
00478 #endif