00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef MACROC_H
00027 #define MACROC_H
00028
00029 #include "oaw/misc/stringc.h"
00030 #include "oaw/misc/kettec.h"
00031
00032 #include "../oawconfig.h"
00033
00034 OAW_BEGIN_NAMESPACE
00035
00036 class VarC;
00037
00038 class OAW_DLLMAPPING FragmentC
00039 {
00040 public:
00041 FragmentC() {m_pVar=0;}
00042 FragmentC(StringC s) {m_str=s; m_pVar=0;}
00043 void SetVar(VarC* pVar){m_pVar=pVar;}
00044 public:
00045 StringC m_str;
00046 VarC* m_pVar;
00047 };
00048
00049 class OAW_DLLMAPPING VarC
00050 {
00051 public:
00052 VarC() {m_pF=0;}
00053 public:
00054 StringC m_name;
00055 FragmentC* m_pF;
00056 };
00057
00058 class OAW_DLLMAPPING MacroC{
00059 public:
00060 MacroC(){}
00061 MacroC(const MacroC&);
00062 virtual ~MacroC();
00063 MacroC& operator = (const MacroC&);
00064 virtual void MakeTemplate(StringC str1,StringC str2);
00065 virtual int CompareString(StringC str,StringC& strOut);
00066 protected:
00067 void ResetTemplate();
00068 void GetStringFromTemplate(StringC& desStr);
00069 VarC* GetVar(StringC name);
00070 void AddVar(StringC keyStr, FragmentC*);
00071 protected:
00072 KetteC<FragmentC*> m_kWord1;
00073 KetteC<FragmentC*> m_kWord2;
00074 KetteC<StringC> m_kKey;
00075 KetteC<VarC> m_kVar;
00076 private:
00077 void Copy(const MacroC&);
00078 };
00079
00080 OAW_END_NAMESPACE
00081
00082 #endif
00083
00084
00085
00086
00087