| |
| |
| |
| |
| |
| |
|
|
| #pragma once |
|
|
| #include <iostream> |
| #include <list> |
| #include <boost/unordered_map.hpp> |
| #include "../InputPathBase.h" |
| #include "../MemPoolAllocator.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<SymbolBind, const SCFG::TargetPhrases*> Element; |
| typedef std::list<Element, MemPoolAllocator<Element> > Coll; |
| Coll targetPhrases; |
|
|
| SubPhrase<SCFG::Word> subPhrase; |
|
|
| InputPath(MemPool &pool, const SubPhrase<SCFG::Word> &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; |
| }; |
|
|
| } |
| } |
|
|
|
|