Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

suifpasses/passes.h

This is the verbatim text of the passes.h include file.
#ifndef SUIFPASSES__PASSES_H
#define SUIFPASSES__PASSES_H

#include "suifkernel/module.h"
#include "suifkernel/suifkernel_forwarders.h"





// ABSTRACT CLASS
class Pass : public Module {
protected:
  Pass( SuifEnv* suif_env, const LString &name );
  virtual ~Pass();

public:
  
  virtual void execute();
  
  virtual Module* clone() const = 0;

  
  virtual void do_file_set_block( FileSetBlock* file_set_block ) = 0;
};




class PipelinablePass : public Pass {
public:
   PipelinablePass( SuifEnv* suif_env, const LString &name );
   virtual ~PipelinablePass() = 0;

   
   virtual void execute();
 
   
   virtual Module* clone() const = 0;

  
      
   virtual void do_file_set_block( FileSetBlock* file_set_block );
  

   virtual void do_file_block( FileBlock* file_block );

  
   virtual void do_procedure_definition( ProcedureDefinition* proc_def );
  
   virtual void do_variable_definition( VariableDefinition* var_def );
  
   virtual void finalize(){};
};



// ABSTRACT CLASS
class FrontendPass : public Module {
protected:
  FrontendPass( SuifEnv* suif_env, const LString &name );
  virtual ~FrontendPass();

public:
  
  virtual void execute();

  // your stuff goes here
  virtual FileSetBlock *build_file_set_block() = 0;
};


#endif

Generated at Mon Nov 22 19:43:27 1999 for NCI SUIF by doxygen  written by Dimitri van Heesch, © 1997-1999