00001 /* 00002 * Copyright (C) 2004, Trent Waddington 00003 */ 00004 /*============================================================================== 00005 * FILE: transformer.h 00006 * OVERVIEW: Provides the definition for the tranformer and related classes. 00007 *============================================================================*/ 00008 /* 00009 * $Revision: 1.4 $ 00010 * 00011 * 17 Apr 04 - Trent: Created 00012 */ 00013 00014 #ifndef TRANSFORMER_H 00015 #define TRANSFORMER_H 00016 00017 #include <list> 00018 00019 class ExpTransformer 00020 { 00021 protected: 00022 static std::list<ExpTransformer*> transformers; 00023 public: 00024 ExpTransformer(); 00025 virtual ~ExpTransformer() { }; // Prevent gcc4 warning 00026 00027 static void loadAll(); 00028 00029 virtual Exp *applyTo(Exp *e, bool &bMod) = 0; 00030 static Exp *applyAllTo(Exp *e, bool &bMod); 00031 }; 00032 00033 #endif 00034