AstTraversal.h

Go to the documentation of this file.
00001 // Author: Markus Schordan
00002 // $Id: AstTraversal.h,v 1.3 2006/04/24 00:21:32 dquinlan Exp $
00003 
00004 #ifndef ASTTRAVERSAL_H
00005 #define ASTTRAVERSAL_H
00006 
00007 
00008 #include "TreeTraversal.h"
00009 //#include "sage3.h"
00010 
00011 // WORK IN PROGRESS. DO NOT MODIFY OR THINK ABOUT IT.
00012 
00013 // test new traversal classes
00014 // example class for tree traversal
00015 class AstPreOrderTraversal : public PreOrderTraversal<SgNode*> {
00016 protected:
00017   virtual void preOrderVisit(SgNode* node);
00018   virtual void setChildrenContainer(SgNode* node, std::vector<SgNode*>& c);
00019 };
00020 
00021 class AstPrePostOrderTraversal : public PrePostOrderTraversal<SgNode*> {
00022 protected:
00023   virtual void setChildrenContainer(SgNode* node, std::vector<SgNode*>& c);
00024 };
00025 
00035 class AstCycleTest : public AstPrePostOrderTraversal {
00036 public:
00039   std::list<SgNode*> determineCycle(std::list<SgNode*>& l, SgNode* node);
00040   std::list<SgNode*> activeNodes;
00041   virtual void preOrderVisit(SgNode* node);
00042 
00045   virtual void setChildrenContainer(SgNode* node, std::vector<SgNode*>& c);
00046   virtual void postOrderVisit(SgNode* node);
00047   virtual void modifyChildrenContainer(SgNode* node, std::vector<SgNode*>& c) {}
00048 };
00049 
00050 #endif
00051 

Generated on Tue Jan 31 05:31:20 2012 for ROSE by  doxygen 1.4.7