#ifndef _UTILS__SEMANTIC_HELPER_H_ #define _UTILS__SEMANTIC_HELPER_H_ #include "basicnodes/basic.h" class SemanticHelper { private: class VarIter { private: suif_vector<VariableSymbol*> _var_vector; suif_vector<VariableSymbol*>::iterator _vector_iter; protected: VarIter(void); void start(void); suif_vector<VariableSymbol*>* get_var_vector(void); public: bool is_valid(void); void next(void); VariableSymbol* current(void); }; public: class SrcVarIter : public VarIter { public: SrcVarIter(const ExecutionObject*); }; class DstVarIter : public VarIter { public: DstVarIter(const Statement*); }; static unsigned get_src_var(const ExecutionObject* exp, suif_vector<VariableSymbol*>* lst = NULL); static unsigned get_dst_var(const Statement* stmt, suif_vector<VariableSymbol*>* lst = NULL); }; #endif // _UTILS__SEMANTIC_HELPER_H_
written by Dimitri van Heesch, © 1997-1999