00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef FALCON_GENTREE_H
00016 #define FALCON_GENTREE_H
00017
00018 #include <falcon/setup.h>
00019 #include <falcon/generator.h>
00020
00021 namespace Falcon
00022 {
00023 class Statement;
00024 class Value;
00025 class StatementList;
00026 class Expression;
00027 class ArrayDecl;
00028 class DictDecl;
00029
00030 class FALCON_DYN_CLASS GenTree: public Generator
00031 {
00032 void generate( const Statement *cmp, const char *spec=0, bool sameline = false, int depth=0 );
00033 void gen_value( const Value *val );
00034 void gen_block( const StatementList &blk, int depth, const char *prefix=0 );
00035 void gen_expression( const Expression *exp );
00036 void gen_array( const ArrayDecl *exp );
00037 void gen_dict( const DictDecl *ad );
00038
00039 public:
00040 GenTree( Stream *out ):
00041 Generator( out )
00042 {}
00043
00044 virtual void generate( const SourceTree *st );
00045
00046 };
00047
00048 }
00049 #endif
00050
00051