00001 // AUTOMATICALLY GENERATED -- DO NOT EDIT! -*- c++ -*- 00002 00003 #ifndef source_h 00004 #define source_h 00005 00006 #include <ptree-core.h> // for PtreeArray 00007 00008 // 00009 // INTERFACE definition follows 00010 // 00011 00012 00013 class ProgramFile; 00014 class Program; 00015 class Lex; 00016 class Parser; 00017 class Walker; 00018 00019 // forward declarations 00020 namespace Loki { 00021 template <class T> class CreateUsingNew; 00022 } 00023 00027 class Source 00028 { 00029 private: 00030 friend class Loki::CreateUsingNew<Source>; 00031 00032 Source (const Source&); 00033 00034 // DATA 00035 00036 Program* _src_prog; 00037 Lex* _lex; 00038 Parser* _parser; 00039 PtreeArray _def; 00040 00041 public: 00042 static Source& instance(); 00043 00044 void parse(const char* filename); 00045 00046 void parse(const char* filename, Program* program); 00047 00048 void dump(); 00049 00050 Parser* parser(); 00051 00052 Ptree* translate(Walker *w); 00053 00054 Program* program(); 00055 00056 private: 00057 Source(); 00058 00059 ~Source(); 00060 }; 00061 00062 #endif // source_h