ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AstTraversal.h
Go to the documentation of this file.
1 // Author: Markus Schordan
2 // $Id: AstTraversal.h,v 1.3 2006/04/24 00:21:32 dquinlan Exp $
3 
4 #ifndef ASTTRAVERSAL_H
5 #define ASTTRAVERSAL_H
6 
7 
8 #include "TreeTraversal.h"
9 //#include "sage3.h"
10 
11 // WORK IN PROGRESS. DO NOT MODIFY OR THINK ABOUT IT.
12 
13 // test new traversal classes
14 // example class for tree traversal
15 class AstPreOrderTraversal : public PreOrderTraversal<SgNode*> {
16 protected:
17  virtual void preOrderVisit(SgNode* node);
18  virtual void setChildrenContainer(SgNode* node, std::vector<SgNode*>& c);
19 };
20 
21 class AstPrePostOrderTraversal : public PrePostOrderTraversal<SgNode*> {
22 protected:
23  virtual void setChildrenContainer(SgNode* node, std::vector<SgNode*>& c);
24 };
25 
36 public:
39  std::list<SgNode*> determineCycle(std::list<SgNode*>& l, SgNode* node);
40  std::list<SgNode*> activeNodes;
41  virtual void preOrderVisit(SgNode* node);
42 
45  virtual void setChildrenContainer(SgNode* node, std::vector<SgNode*>& c);
46  virtual void postOrderVisit(SgNode* node);
47  virtual void modifyChildrenContainer(SgNode* node, std::vector<SgNode*>& c) {}
48 };
49 
50 #endif
51