int
main ( int argc, char* argv[] )
   {
  // Build the abstract syntax tree
     SgProject* project = frontend(argc,argv);
     ROSE_ASSERT (project != NULL);

  // Build the inherited attribute
     InheritedAttribute inheritedAttribute;

  // Define the traversal
     Traversal myTraversal;

  // Call the traversal starting at the project (root) node of the AST
     myTraversal.traverseInputFiles(project,inheritedAttribute);

  // Demonstrate the the transformation will pass the AST tests.
     AstTests::runAllTests (project);

  // Output an optional graph of the AST (just the tree, when active)
     generateDOT ( *project );

  // Output an optional graph of the AST (the whole graph, of bounded complexity, when active)
     const int MAX_NUMBER_OF_IR_NODES_TO_GRAPH_FOR_WHOLE_GRAPH = 10000;
     generateAstGraph(project,MAX_NUMBER_OF_IR_NODES_TO_GRAPH_FOR_WHOLE_GRAPH,"");

     return backend (project);	// only backend error code is reported
   }
int
main ( int argc, char* argv[] )
   {
  // Build the abstract syntax tree
     SgProject* project = frontend(argc,argv);
     ROSE_ASSERT (project != NULL);

  // Build the inherited attribute
     InheritedAttribute inheritedAttribute = false;

  // Define the traversal
     Traversal myTraversal;

  // Call the traversal starting at the project (root) node of the AST
     myTraversal.traverseInputFiles(project,inheritedAttribute);

  // This program only does analysis, so it need not call the backend to generate code.
     return 0;
   }
Пример #3
0
int
main ( int argc, char* argv[] )
   {
  // Initialize and check compatibility. See rose::initialize
     ROSE_INITIALIZE;

     SgProject* project = frontend(argc,argv);
     ROSE_ASSERT (project != NULL);

  // Build the inherited attribute
     InheritedAttribute inheritedAttribute;

     Traversal myTraversal;

  // Call the traversal starting at the sageProject node of the AST
     myTraversal.traverseInputFiles(project,inheritedAttribute);

     return 0;
   }
int main ( int argc, char* argv[] ) {
   SgProject* project = frontend(argc,argv);
   ROSE_ASSERT (project != NULL);

   // Call function to declare function to be called to recode use of all functions in the AST
   beforeWrite.buildDeclaration(project);
   beforeRead.buildDeclaration(project);

   // Build the inherited attribute
   InheritedAttribute inheritedAttribute;

   Traversal myTraversal;

   // Call the traversal starting at the sageProject node of the AST
   myTraversal.traverseInputFiles(project,inheritedAttribute);

   // Generate Code and compile it with backend (vendor) compiler to generate object code
   // or executable (as specified on commandline using vendor compiler's command line).
   // Returns error code form compilation using vendor's compiler.
   return backend(project);
}