mosesdecoder/phrase-extract/postprocess-egret-forests/Forest.h
2015-05-02 11:45:24 +01:00

47 lines
700 B
C++

#pragma once
#include "vector"
#include <boost/shared_ptr.hpp>
#include "Symbol.h"
namespace MosesTraining
{
namespace Syntax
{
namespace PostprocessEgretForests
{
class Forest
{
public:
struct Vertex;
struct Hyperedge {
double weight;
Vertex *head;
std::vector<Vertex *> tail;
};
struct Vertex {
Symbol symbol;
int start;
int end;
std::vector<boost::shared_ptr<Hyperedge> > incoming;
};
Forest() {}
std::vector<boost::shared_ptr<Vertex> > vertices;
private:
// Copying is not allowed.
Forest(const Forest &);
Forest &operator=(const Forest &);
};
} // namespace PostprocessEgretForests
} // namespace Syntax
} // namespace MosesTraining