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_NODE_NODE_WALKER_PRIVATE_H__
00040 #define __NUSMV_CORE_NODE_NODE_WALKER_PRIVATE_H__
00041
00042
00043 #include "nusmv/core/node/NodeWalker.h"
00044 #include "nusmv/core/node/MasterNodeWalker.h"
00045
00046 #include "nusmv/core/utils/EnvObject.h"
00047 #include "nusmv/core/utils/EnvObject_private.h"
00048 #include "nusmv/core/utils/utils.h"
00049 #include "nusmv/core/utils/array.h"
00050
00051
00061 typedef struct NodeWalker_TAG
00062 {
00063
00064 INHERITS_FROM(EnvObject);
00065
00066
00067
00068
00069 char* name;
00070 int low;
00071 size_t num;
00072 boolean can_handle_null;
00073
00074 MasterNodeWalker_ptr master;
00075
00076 array_t* node_transformations;
00077
00078 } NodeWalker;
00079
00080
00081
00082
00083
00084
00085
00105 NodeWalker_ptr NodeWalker_create(const NuSMVEnv_ptr env,
00106 const char* name,
00107 int low, size_t num,
00108 boolean can_handle_null);
00109
00118 void
00119 node_walker_init(NodeWalker_ptr self, const NuSMVEnv_ptr env,
00120 const char* name, int low, size_t num,
00121 boolean can_handle_null);
00122
00131 void node_walker_deinit(NodeWalker_ptr self);
00132
00141 void
00142 node_walker_set_master(NodeWalker_ptr self,
00143 MasterNodeWalker_ptr master);
00144
00153 boolean
00154 node_walker_can_handle_null_node(const NodeWalker_ptr self);
00155
00156
00164 node_ptr node_walker_run_transformation_chain(const NodeWalker_ptr self,
00165 node_ptr node);
00166
00167 #endif