00001 #ifndef _RTREECONTEXTRULE_H_ 00002 #define _RTREECONTEXTRULE_H_ 00003 00004 #include "rulecontext.h" 00005 00007 class ContextRule : public Rule{ 00008 protected: 00010 List* phpInPattern; 00012 00018 List* tplOutPattern; 00020 List* phpOutPattern; 00021 public: 00023 ContextRule(List* iphpInPattern, List* itplOutPattern, List* iphpOutPattern) ; 00024 00026 virtual ~ContextRule(); 00027 00028 virtual bool execute(RuleContext* context, List* phpIn, List* phpOut, List* tplOut, Node::Assignment& assign) const; 00029 00030 virtual Rule* substitute(const Node::Assignment &assign); 00031 00033 virtual RuleContext* generateSubcontext(RuleContext *context, const Node::Assignment &assign) const = 0; 00034 }; 00035 00036 00037 #endif