00001 #pragma once 00002 00003 #include "LRState.h" 00004 #include "moses/Range.h" 00005 #include "moses/Bitmap.h" 00006 00007 namespace Moses 00008 { 00009 00011 class HReorderingForwardState : public LRState 00012 { 00013 private: 00014 bool m_first; 00015 Range m_prevRange; 00016 Bitmap m_coverage; 00017 00018 public: 00019 HReorderingForwardState(const LRModel &config, size_t sentenceLength, 00020 size_t offset); 00021 HReorderingForwardState(const HReorderingForwardState *prev, 00022 const TranslationOption &topt); 00023 00024 virtual size_t hash() const; 00025 virtual bool operator==(const FFState& other) const; 00026 00027 virtual LRState* Expand(const TranslationOption& hypo, 00028 const InputType& input, 00029 ScoreComponentCollection* scores) const; 00030 }; 00031 00032 } 00033