00001 #ifndef _RTREEMULTICONTEXTRULE_H_ 00002 #define _RTREEMULTICONTEXTRULE_H_ 00003 00004 #include "rtreecontextrule.h" 00005 #include "streevariable.h" 00006 00008 class MultiContextRule : public ContextRule{ 00010 Variable* controlVariable; 00011 public: 00013 MultiContextRule(List* iphpInPattern, Variable* icontrolVariable, List* itplOutPattern, List* iphpOutPattern) ; 00014 00015 virtual ~MultiContextRule(); 00016 00017 virtual Rule* copy(); 00018 00019 virtual RuleContext* generateSubcontext(RuleContext *context, const Node::Assignment &assign) const; 00020 00021 virtual ostream& print (ostream& os) const; 00022 }; 00023 00024 00025 #endif 00026