00001 #pragma once 00002 00003 #include <vector> 00004 00005 namespace Moses 00006 { 00007 00008 class FFState; 00009 00010 namespace Syntax 00011 { 00012 00013 struct PVertex; 00014 struct SHyperedge; 00015 00016 // A vertex in the search hypergraph. 00017 // 00018 // Important: a SVertex owns its incoming SHyperedge objects and its FFState 00019 // objects and will delete them on destruction. 00020 struct SVertex { 00021 ~SVertex(); 00022 00023 SHyperedge *best; 00024 std::vector<SHyperedge*> recombined; 00025 const PVertex *pvertex; 00026 std::vector<FFState*> states; 00027 }; 00028 00029 } // Syntax 00030 } // Moses