00001 #pragma once 00002 00003 #include "Forest.h" 00004 00005 namespace Moses 00006 { 00007 namespace Syntax 00008 { 00009 namespace F2S 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 Forest::Vertex &, Callback &) = 0; 00020 }; 00021 00022 } // F2S 00023 } // Syntax 00024 } // Moses