Advertisement
Guest User

Untitled

a guest
May 29th, 2015
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #include <iostream>
  2. #include "rose.h"
  3. #include "metaObject.h"
  4. #include "createMetaObjectTraversal.h"
  5. #include "userDefinedMetaObjects.h"
  6. #include "metaClassNameContainer.h"
  7.  
  8. using namespace std;
  9. using namespace SageInterface;
  10. using namespace SageBuilder;
  11. using namespace OpenFoo;
  12.  
  13. //the principle to follow: make the template as simple as possible and the base code as reusable as possible.
  14. //the order of the metaClasses registered should be maintained in a logical order.
  15. //step 1: create a vector containing all metaObject classes generated
  16. //step 2: invoke all these classes seqentially and call corresponding member functions.
  17.  
  18. int main(int argc, char* argv[])
  19. {
  20. SgProject *project = frontend (argc, argv);
  21. #if 1
  22. printf ("Generate the dot output of the SAGE III AST \n");
  23. generateDOT ( *project );
  24. printf ("DONE: Generate the dot output of the SAGE III AST \n");
  25. #endif
  26.  
  27. std::cout <<"After building AST"<<endl;
  28.  
  29. MetaObjectFactory factory;
  30.  
  31. factory.registerMetaObject(new MetaClassFunction());
  32. factory.registerMetaObject(new MetaClassModule());
  33. factory.registerMetaObject(new MetaClassStruct());
  34.  
  35. CreateMetaObjectTraversal* ptreeTraversal = new Fortran_CreateMetaObjectTraversal();
  36. ptreeTraversal->traverseInputFiles(project, preorder);
  37.  
  38. factory.invokeMetaObjects(ptreeTraversal);
  39.  
  40. AstTests::runAllTests(project);
  41. backend (project);
  42. if(ptreeTraversal) delete ptreeTraversal;
  43. return 1;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement