ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AstCombinedSimpleProcessing.h
Go to the documentation of this file.
1 // Author: Gergo Barany
2 // $Id: AstCombinedSimpleProcessing.h,v 1.1 2008/01/08 02:56:38 dquinlan Exp $
3 
4 // Class for combining AstSimpleProcessing traversals; see the comment in
5 // AstCombinedProcessing.h for general information.
6 
7 #ifndef ASTCOMBINEDSIMPLEPROCESSING_H
8 #define ASTCOMBINEDSIMPLEPROCESSING_H
9 
10 #include "AstSimpleProcessing.h"
11 
13  : public AstSimpleProcessing
14 {
15 public:
18  typedef std::vector<TraversalPtr> TraversalPtrList;
19 
24 
26  void addTraversal(TraversalPtr);
30  TraversalPtrList &get_traversalPtrListRef();
31 
32 protected:
34  virtual void visit(SgNode* astNode);
35 
36  virtual void atTraversalStart();
37  virtual void atTraversalEnd();
38 
40 
41 private:
42  TraversalPtrList::iterator tBegin, tEnd;
43  TraversalPtrList::size_type numberOfTraversals;
44 };
45 
47  : public AstPrePostProcessing
48 {
49 public:
52  typedef std::vector<TraversalPtr> TraversalPtrList;
53 
58 
65 
66 protected:
68  virtual void preOrderVisit(SgNode* astNode);
69  virtual void postOrderVisit(SgNode* astNode);
70 
71  virtual void atTraversalStart();
72  virtual void atTraversalEnd();
73 
75 
76 private:
77  TraversalPtrList::iterator tBegin, tEnd;
78  TraversalPtrList::size_type numberOfTraversals;
79 };
80 
81 #endif