#include "nusmv/core/compile/symb_table/SymbType.h"
#include "nusmv/core/utils/utils.h"
#include "nusmv/core/utils/NodeList.h"
#include "nusmv/core/node/node.h"
#include "nusmv/core/compile/symb_table/NFunction.h"
#include "nusmv/core/set/set.h"
Go to the source code of this file.
Data Structures | |
struct | SymbLayerIter |
Defines | |
#define | SYMB_LAYER(x) ((SymbLayer_ptr) x) |
#define | SYMB_LAYER_CHECK_INSTANCE(x) (nusmv_assert(SYMB_LAYER(x) != SYMB_LAYER(NULL))) |
#define | SYMB_LAYER_FOREACH(self, iter, mask) |
#define | SYMB_LAYER_FOREACH_FILTER(self, iter, mask, filter, arg) |
Typedefs | |
typedef struct SymbLayer_TAG * | SymbLayer_ptr |
typedef boolean(* | SymbLayerIterFilterFun )(const SymbLayer_ptr layer, const node_ptr sym, void *arg) |
Enumerations | |
enum | LayerInsertPolicy { SYMB_LAYER_POS_DEFAULT, SYMB_LAYER_POS_FORCE_TOP, SYMB_LAYER_POS_TOP, SYMB_LAYER_POS_BOTTOM, SYMB_LAYER_POS_FORCE_BOTTOM } |
To be used as a policy when a layer is pushed in the layers stack of a SymbTable. More... | |
Functions | |
void | SymbLayer_iter_set_filter (const SymbLayer_ptr layer, SymbLayerIter *iter, SymbLayerIterFilterFun fun, void *arg) |
Sets the filter for an interator over the Symbol Layer symbols. |
#define SYMB_LAYER | ( | x | ) | ((SymbLayer_ptr) x) |
#define SYMB_LAYER_CHECK_INSTANCE | ( | x | ) | (nusmv_assert(SYMB_LAYER(x) != SYMB_LAYER(NULL))) |
#define SYMB_LAYER_FOREACH | ( | self, | |||
iter, | |||||
mask | ) |
#define SYMB_LAYER_FOREACH_FILTER | ( | self, | |||
iter, | |||||
mask, | |||||
filter, | |||||
arg | ) |
for (SymbLayer_gen_iter(self, &iter, mask), \ SymbLayer_iter_set_filter(self, &iter, filter, arg); \ !SymbLayer_iter_is_end(self, &iter); \ SymbLayer_iter_next(self, &iter))
typedef struct SymbLayer_TAG* SymbLayer_ptr |
typedef boolean(* SymbLayerIterFilterFun)(const SymbLayer_ptr layer, const node_ptr sym, void *arg) |
enum LayerInsertPolicy |
To be used as a policy when a layer is pushed in the layers stack of a SymbTable.
WHen a layer is pushed within a symbol table, it will be inserted according to an insertion order that will change the order the symbols occuring within the layer are encoded in the encodings. The default behaviour is to push the layer on the top of the stack.
Forced positions (SYMB_LAYER_POS_FORCE_*) make the layer to stay always at that position. Only one layer can be added to a symbol table with the same forced postion at a given time, i.e. two or more layers are not allowed to have the same forced position into the same symbol table.
void SymbLayer_iter_set_filter | ( | const SymbLayer_ptr | layer, | |
SymbLayerIter * | iter, | |||
SymbLayerIterFilterFun | fun, | |||
void * | arg | |||
) |
Sets the filter for an interator over the Symbol Layer symbols.
Sets the filter for an interator over the Symbol Layer symbols. The iterator will be moved in order to point to a symbol that satisfies both the mask and the filter