00001 #ifndef _RULESYSTEM_H_ 00002 #define _RULESYSTEM_H_ 00003 00004 #define MYRULES "rules/" 00005 00006 00007 #include "stree.h" 00008 #include "rtree.h" 00009 #include "namespace.h" 00010 00012 class RuleSystem { 00013 public: 00015 typedef map<string, RunRuleList> NamedRunRuleList; 00016 00017 private: 00018 00020 NamedRunRuleList runRules; 00022 NameSpace mainNameSpace; 00024 set<int> ruleRunTimes; 00026 set<int>::iterator courrentRunTime; 00027 public: 00028 00030 RuleSystem(int debug = 0); 00031 00033 void execute(const string &phpFileName, StatementList *phpIn, StatementList *phpOut, StatementList *tplOut); 00034 00036 ~RuleSystem(); 00037 00039 RunRuleList& getRunRuleList(const string &contextName) { return runRules[contextName]; }; 00040 00042 bool stepTime(); 00044 int getRuleRunTime() const { return *courrentRunTime; }; 00045 }; 00046 00047 #endif