cgmodule.h 809 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef CGMODULE_H
  2. #define CGMODULE_H
  3. #include "cgframe.h"
  4. struct CGModule{
  5. ostream& out;
  6. vector<CGFrame*> frames;
  7. vector<CGDat*> datas;
  8. set<string> importSyms,exportSyms,dataSyms;
  9. CGModule( ostream &out );
  10. virtual ~CGModule();
  11. CGFrame* createFrame( CGFun *f );
  12. void emitModule();
  13. virtual CGFrame*frame( CGFun *fun )=0;
  14. virtual void emitHeader()=0;
  15. virtual void emitImport( string t )=0;
  16. virtual void emitExport( string t )=0;
  17. virtual void emitFrame( CGFrame *frame )=0;
  18. virtual void emitData( CGDat *dat )=0;
  19. virtual void emitFooter()=0;
  20. };
  21. /*
  22. struct CGModule{
  23. IdentSet externs;
  24. IdentSet exports;
  25. IdentSet imports;
  26. std::set<CGDat*> datas;
  27. virtual ~CGModule();
  28. virtual void emit();
  29. virtual CGFrame* createFrame( CGFun *fun )=0;
  30. virtual void flush()=0;
  31. };
  32. */
  33. #endif