/* * InputPath.h * * Created on: 23 Oct 2015 * Author: hieu */ #pragma once #include #include #include #include "../InputPathBase.h" #include "TargetPhrases.h" #include "ActiveChart.h" #include "Word.h" namespace Moses2 { namespace SCFG { class TargetPhrases; class TargetPhraseImpl; //////////////////////////////////////////////////////////////////////////// class InputPath: public InputPathBase { public: typedef std::pair Element; typedef std::list > Coll; Coll targetPhrases; SubPhrase subPhrase; InputPath(MemPool &pool, const SubPhrase &subPhrase, const Range &range, size_t numPt, const InputPath *prefixPath); virtual ~InputPath(); const ActiveChart &GetActiveChart(size_t ptInd) const { return m_activeChart[ptInd]; } void AddActiveChartEntry(size_t ptInd, ActiveChartEntry *chartEntry); void AddTargetPhrasesToPath( MemPool &pool, const System &system, const PhraseTable &pt, const SCFG::TargetPhrases &tps, const SCFG::SymbolBind &symbolBind); size_t GetNumRules() const; std::string Debug(const System &system) const; protected: ActiveChart *m_activeChart; }; } }