00001 #pragma once 00002 00003 #include "InputTree.h" 00004 00005 namespace Moses 00006 { 00007 namespace Syntax 00008 { 00009 namespace T2S 00010 { 00011 00012 // Base class for rule matchers. 00013 template<typename Callback> 00014 class RuleMatcher 00015 { 00016 public: 00017 virtual ~RuleMatcher() {} 00018 00019 virtual void EnumerateHyperedges(const InputTree::Node &, Callback &) = 0; 00020 }; 00021 00022 } // T2S 00023 } // Syntax 00024 } // Moses