00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef FALCON_GENERATOR_H
00017 #define FALCON_GENERATOR_H
00018
00019 #include <falcon/setup.h>
00020 #include <falcon/basealloc.h>
00021
00022 namespace Falcon
00023 {
00024
00025 class Stream;
00026 class Module;
00027 class SourceTree;
00028
00029 class FALCON_DYN_CLASS Generator: public BaseAlloc
00030 {
00031 protected:
00032 Stream *m_out;
00033
00034 public:
00040 Generator( Stream *out ):
00041 m_out( out )
00042 {}
00043
00044 virtual ~Generator()
00045 {}
00046
00047 virtual void generate( const SourceTree *st ) = 0;
00048 };
00049
00050 }
00051 #endif
00052
00053