Program Listing for File AstTraversal.h#
↰ Return to documentation for file (src/midend/astProcessing/AstTraversal.h)
// Author: Markus Schordan
// $Id: AstTraversal.h,v 1.3 2006/04/24 00:21:32 dquinlan Exp $
#ifndef ASTTRAVERSAL_H
#define ASTTRAVERSAL_H
#include "TreeTraversal.h"
//#include "sage3.h"
// WORK IN PROGRESS. DO NOT MODIFY OR THINK ABOUT IT.
// test new traversal classes
// example class for tree traversal
class AstPreOrderTraversal : public PreOrderTraversal<SgNode*> {
protected:
virtual void preOrderVisit(SgNode* node);
virtual void setChildrenContainer(SgNode* node, std::vector<SgNode*>& c);
};
class AstPrePostOrderTraversal : public PrePostOrderTraversal<SgNode*> {
protected:
virtual void setChildrenContainer(SgNode* node, std::vector<SgNode*>& c);
};
class AstCycleTest : public AstPrePostOrderTraversal {
public:
std::list<SgNode*> determineCycle(std::list<SgNode*>& l, SgNode* node);
std::list<SgNode*> activeNodes;
virtual void preOrderVisit(SgNode* node);
virtual void setChildrenContainer(SgNode* node, std::vector<SgNode*>& c);
virtual void postOrderVisit(SgNode* node);
virtual void modifyChildrenContainer(SgNode* node, std::vector<SgNode*>& c) {}
};
#endif