00001 #ifndef _MODULE_H 00002 #define _MODULE_H 00003 00004 #include "xi-Construct.h" 00005 00006 namespace xi { 00007 00008 class Module : public Construct { 00009 int _isMain; 00010 const char* name; 00011 ConstructList* clist; 00012 00013 public: 00014 Module(int l, const char* n, ConstructList* c); 00015 void print(XStr& str); 00016 void printChareNames() { 00017 if (clist) clist->printChareNames(); 00018 } 00019 void check(); 00020 void generate(); 00021 void setModule(); 00022 void prependConstruct(Construct* c) { clist = new ConstructList(-1, c, clist); } 00023 void preprocess(); 00024 void genDepend(const char* cifile); 00025 void genDecls(XStr& str); 00026 void genDefs(XStr& str); 00027 void genReg(XStr& str); 00028 void setMain(void) { _isMain = 1; } 00029 int isMain(void) { return _isMain; } 00030 bool isTramTarget(); 00031 void printName() { printf("%s\n", name); } 00032 00033 // DMK - Accel Support 00034 int genAccels_spe_c_funcBodies(XStr& str); 00035 void genAccels_spe_c_regFuncs(XStr& str); 00036 void genAccels_spe_c_callInits(XStr& str); 00037 void genAccels_spe_h_includes(XStr& str); 00038 void genAccels_spe_h_fiCountDefs(XStr& str); 00039 void genAccels_ppe_c_regFuncs(XStr& str); 00040 }; 00041 00042 } // namespace xi 00043 00044 #endif // ifndef _MODULE_H