00001 #ifndef _RTREESUBSTITUTIONRULE_H_ 00002 #define _RTREESUBSTITUTIONRULE_H_ 00003 00004 #include "rulecontext.h" 00005 00007 00011 class SubstitutionRule : public Rule{ 00013 List* phpInPattern; 00015 List* tplOutPattern; 00017 List* phpOutPattern; 00018 public: 00019 00021 SubstitutionRule(List* iphpInPattern, List* itplOutPattern, List* iphpOutPattern) ; 00022 00023 virtual bool execute(RuleContext* context, List* phpIn, List* phpOut, List* tplOut, Node::Assignment& assign) const; 00024 00025 virtual Rule* copy(); 00026 virtual Rule* substitute(const Node::Assignment &assign); 00027 00028 virtual ostream& print(ostream& os) const; 00029 }; 00030 00031 #endif