|
#pragma once |
|
|
|
#include <string> |
|
|
|
#include "moses/TranslationModel/PhraseDictionary.h" |
|
|
|
namespace Moses |
|
{ |
|
|
|
class ChartParser; |
|
class ChartCellCollectionBase; |
|
class AllOptions; |
|
namespace Syntax |
|
{ |
|
|
|
class RuleTable; |
|
|
|
|
|
|
|
|
|
|
|
class RuleTableFF : public PhraseDictionary |
|
{ |
|
public: |
|
RuleTableFF(const std::string &); |
|
|
|
|
|
~RuleTableFF() {} |
|
|
|
void Load(AllOptions::ptr const& opts); |
|
|
|
const RuleTable *GetTable() const { |
|
return m_table; |
|
} |
|
|
|
static const std::vector<RuleTableFF*> &Instances() { |
|
return s_instances; |
|
} |
|
|
|
ChartRuleLookupManager *CreateRuleLookupManager( |
|
const ChartParser &, const ChartCellCollectionBase &, std::size_t) { |
|
assert(false); |
|
return 0; |
|
} |
|
|
|
|
|
|
|
const boost::unordered_set<std::size_t> &GetSourceTerminalSet() const { |
|
return m_sourceTerminalSet; |
|
} |
|
|
|
private: |
|
static std::vector<RuleTableFF*> s_instances; |
|
|
|
const RuleTable *m_table; |
|
boost::unordered_set<std::size_t> m_sourceTerminalSet; |
|
}; |
|
|
|
} |
|
} |
|
|