AstReverseProcessing.h

Go to the documentation of this file.
00001 // Author: Markus Schordan
00002 // $Id: AstReverseProcessing.h,v 1.3 2008/01/08 02:56:38 dquinlan Exp $
00003 
00004 #ifndef ASTREVERSEPROCESSING_H
00005 #define ASTREVERSEPROCESSING_H
00006 
00007 // tps (01/08/2010) Added sage3basic since this doesnt compile under gcc4.1.2
00008 //#include "sage3basic.h"
00009 //#include "sage3.h"
00010 
00011 #include "AstProcessing.h"
00012 
00014 // REVERSE PREFIX PROCESSING 
00016 
00017 template<typename InheritedAttributeType>
00018 class AstReversePrefixInhProcessing : public AstTopDownProcessing<InheritedAttributeType> {
00019  public:
00020   AstReversePrefixInhProcessing();
00021  protected:
00022   virtual void setNodeSuccessors(SgNode* node, typename AstReversePrefixInhProcessing<InheritedAttributeType>::SuccessorsContainer& succContainer);
00023 };
00024 
00025 template<class SynthesizedAttributeType>
00026 class AstReversePrefixSynProcessing : public AstBottomUpProcessing<SynthesizedAttributeType> {
00027  public:
00028   AstReversePrefixSynProcessing();
00029  protected:
00030   virtual void setNodeSuccessors(SgNode* node, typename AstReversePrefixSynProcessing<SynthesizedAttributeType>::SuccessorsContainer & succContainer);
00031 };
00032 
00033 template<class InheritedAttributeType, class SynthesizedAttributeType>
00034 class AstReversePrefixInhSynProcessing : public AstTopDownBottomUpProcessing<InheritedAttributeType, SynthesizedAttributeType> {
00035  public:
00036   AstReversePrefixInhSynProcessing();
00037  protected:
00038   virtual void setNodeSuccessors(SgNode* node, typename AstReversePrefixInhSynProcessing<InheritedAttributeType,SynthesizedAttributeType>::SuccessorsContainer & succContainer);
00039 };
00040 
00042 // REVERSE BRANCH PROCESSING 
00044 
00045 template<class InheritedAttributeType, class SynthesizedAttributeType>
00046 class AstReverseBranchInhSynProcessing : public AstTopDownBottomUpProcessing<InheritedAttributeType, SynthesizedAttributeType> {
00047  public:
00048   AstReverseBranchInhSynProcessing();
00049  protected:
00050   virtual void setNodeSuccessors(SgNode* node, typename AstReverseBranchInhSynProcessing<InheritedAttributeType,SynthesizedAttributeType>::SuccessorsContainer & succContainer);
00051 };
00052 
00053 template<class InheritedAttributeType>
00054 class AstReverseBranchInhProcessing : public AstTopDownProcessing<InheritedAttributeType> {
00055  public:
00056   AstReverseBranchInhProcessing();
00057  protected:
00058   virtual void setNodeSuccessors(SgNode* node, typename AstReverseBranchInhProcessing<InheritedAttributeType>::SuccessorsContainer & succContainer);
00059 };
00060 
00061 template<class SynthesizedAttributeType>
00062 class AstReverseBranchSynProcessing : public AstBottomUpProcessing<SynthesizedAttributeType> {
00063  public:
00064   AstReverseBranchSynProcessing();
00065  protected:
00066   virtual void setNodeSuccessors(SgNode* node, typename AstReverseBranchSynProcessing<SynthesizedAttributeType>::SuccessorsContainer & succContainer);
00067 };
00068 
00069 // Author: Markus Schordan
00070 // $Id: AstReverseProcessing.C,v 1.3 2008/01/08 02:56:38 dquinlan Exp $
00071 
00072 // DQ (3/12/2006): This is now not required, the file name is 
00073 // changed to rose_config.h and is included directly by rose.h.
00074 // #ifdef HAVE_CONFIG_H
00075 // #include <config.h>
00076 // #endif
00077 
00079 // REVERSE PRFIX PROCESSING 
00081 
00082 // GB (09/25/2007): Added constructor to set flag to indicate that this is not a default traversal.
00083 template<class InheritedAttributeType>
00084 AstReversePrefixInhProcessing<InheritedAttributeType>::AstReversePrefixInhProcessing()
00085 {
00086     AstTopDownProcessing<InheritedAttributeType>::set_useDefaultIndexBasedTraversal(false);
00087 }
00088 
00089 template<class InheritedAttributeType>
00090 void 
00091 AstReversePrefixInhProcessing<InheritedAttributeType>
00092 ::setNodeSuccessors(SgNode* node, typename AstReversePrefixInhProcessing<InheritedAttributeType>::SuccessorsContainer& succContainer) {
00093   AstSuccessorsSelectors::selectReversePrefixSuccessors(node,succContainer);
00094 }
00095 
00096 // GB (09/25/2007): Added constructor to set flag to indicate that this is not a default traversal.
00097 template<class SynthesizedAttributeType>
00098 AstReversePrefixSynProcessing<SynthesizedAttributeType>::AstReversePrefixSynProcessing()
00099 {
00100     AstBottomUpProcessing<SynthesizedAttributeType>::set_useDefaultIndexBasedTraversal(false);
00101 }
00102 
00103 template<class SynthesizedAttributeType>
00104 void 
00105 AstReversePrefixSynProcessing<SynthesizedAttributeType>
00106 ::setNodeSuccessors(SgNode* node, typename AstReversePrefixSynProcessing<SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
00107   AstSuccessorsSelectors::selectReversePrefixSuccessors(node,succContainer);
00108 }
00109 
00110 // GB (09/25/2007): Added constructor to set flag to indicate that this is not a default traversal.
00111 template<class InheritedAttributeType, class SynthesizedAttributeType>
00112 AstReversePrefixInhSynProcessing<InheritedAttributeType, SynthesizedAttributeType>::AstReversePrefixInhSynProcessing()
00113 {
00114     AstTopDownBottomUpProcessing<InheritedAttributeType, SynthesizedAttributeType>::set_useDefaultIndexBasedTraversal(false);
00115 }
00116 
00117 template<class InheritedAttributeType, class SynthesizedAttributeType>
00118 void 
00119 AstReversePrefixInhSynProcessing<InheritedAttributeType, SynthesizedAttributeType>
00120 ::setNodeSuccessors(SgNode* node, typename AstReversePrefixInhSynProcessing<InheritedAttributeType, SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
00121   AstSuccessorsSelectors::selectReversePrefixSuccessors(node,succContainer);
00122 }
00123 
00125 // REVERSE BRANCH PROCESSING 
00127 
00128 // GB (09/25/2007): Added constructor to set flag to indicate that this is not a default traversal.
00129 template<class InheritedAttributeType, class SynthesizedAttributeType>
00130 AstReverseBranchInhSynProcessing<InheritedAttributeType, SynthesizedAttributeType>::AstReverseBranchInhSynProcessing()
00131 {
00132     AstTopDownBottomUpProcessing<InheritedAttributeType, SynthesizedAttributeType>::set_useDefaultIndexBasedTraversal(false);
00133 }
00134 
00135 template<class InheritedAttributeType, class SynthesizedAttributeType>
00136 void 
00137 AstReverseBranchInhSynProcessing<InheritedAttributeType, SynthesizedAttributeType>
00138 ::setNodeSuccessors(SgNode* node, typename AstReverseBranchInhSynProcessing<InheritedAttributeType, SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
00139   AstSuccessorsSelectors::selectReverseBranchSuccessors(node,succContainer);
00140 }
00141 
00142 // GB (09/25/2007): Added constructor to set flag to indicate that this is not a default traversal.
00143 template<class InheritedAttributeType>
00144 AstReverseBranchInhProcessing<InheritedAttributeType>::AstReverseBranchInhProcessing()
00145 {
00146     AstTopDownProcessing<InheritedAttributeType>::set_useDefaultIndexBasedTraversal(false);
00147 }
00148 
00149 template<class InheritedAttributeType>
00150 void 
00151 AstReverseBranchInhProcessing<InheritedAttributeType>
00152 ::setNodeSuccessors(SgNode* node, typename AstReverseBranchInhProcessing<InheritedAttributeType>::SuccessorsContainer& succContainer) {
00153   AstSuccessorsSelectors::selectReverseBranchSuccessors(node,succContainer);
00154 }
00155 
00156 // GB (09/25/2007): Added constructor to set flag to indicate that this is not a default traversal.
00157 template<class SynthesizedAttributeType>
00158 AstReverseBranchSynProcessing<SynthesizedAttributeType>::AstReverseBranchSynProcessing()
00159 {
00160     AstBottomUpProcessing<SynthesizedAttributeType>::set_useDefaultIndexBasedTraversal(false);
00161 }
00162 
00163 template<class SynthesizedAttributeType>
00164 void 
00165 AstReverseBranchSynProcessing<SynthesizedAttributeType>
00166 ::setNodeSuccessors(SgNode* node, typename AstReverseBranchSynProcessing<SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
00167   AstSuccessorsSelectors::selectReverseBranchSuccessors(node,succContainer);
00168 }
00169 
00170 #include "AstReverseSimpleProcessing.h"
00171 
00172 #endif

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