00001 #ifndef MODULE_INSTANCE_H_INCLUDED_ 00002 #define MODULE_INSTANCE_H_INCLUDED_ 00003 00004 #include <string> 00005 #include <vector> 00006 00007 #include "rose.h" 00008 00009 #include "instance.h" 00010 00011 #include "class.h" // included for get_definition 00012 #include "module.h" // included for get_definition 00013 00014 namespace risc { 00015 00021 class ModuleInstance: public Instance { 00022 00023 public: 00024 00028 explicit ModuleInstance(SgVariableDefinition *ast_node, Module *ir_def); 00029 00034 explicit ModuleInstance(SgVariableDefinition *ast_node, Type type); 00035 00036 00041 virtual Module* get_definition(); 00042 00043 private: 00044 00049 Module* module_definition_; 00050 00054 ModuleInstance(const ModuleInstance &md); 00055 }; 00056 00057 typedef std::vector<ModuleInstance*> 00058 ModuleInstanceVector; 00059 typedef std::vector<ModuleInstance*>::iterator 00060 ModuleInstanceVectorIter; 00061 typedef std::vector<ModuleInstance*>::const_iterator 00062 ModuleInstanceVectorConstIter; 00063 00064 }; // end namespace risc 00065 00066 #endif /* MODULE_INSTANCE_H_INCLUDED_ */ 00067 00068 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */