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 initialize();

  
  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 initialize();

   
   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 initialize();
  
  virtual void execute();

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

#endif

Generated at Wed Apr 25 17:34:57 2001 for NCI SUIF by doxygen  written by Dimitri van Heesch, © 1997-1999