| |
| |
| |
| |
| |
| |
| #pragma once |
|
|
| #include "../PhraseTable.h" |
| #include "../../legacy/Util2.h" |
| #include "../../SCFG/InputPath.h" |
| #include "Node.h" |
| #include "../../PhraseBased/PhraseImpl.h" |
| #include "../../PhraseBased/TargetPhraseImpl.h" |
| #include "../../PhraseBased/TargetPhrases.h" |
| #include "../../SCFG/PhraseImpl.h" |
| #include "../../SCFG/TargetPhraseImpl.h" |
| #include "../../SCFG/TargetPhrases.h" |
|
|
| namespace Moses2 |
| { |
|
|
| class PhraseTableMemory: public PhraseTable |
| { |
| typedef PtMem::Node<Word, Phrase<Word>, TargetPhraseImpl, TargetPhrases> PBNODE; |
| typedef PtMem::Node<SCFG::Word, Phrase<SCFG::Word>, SCFG::TargetPhraseImpl, SCFG::TargetPhrases> SCFGNODE; |
|
|
| |
| class ActiveChartEntryMem : public SCFG::ActiveChartEntry |
| { |
| typedef SCFG::ActiveChartEntry Parent; |
| public: |
| const PhraseTableMemory::SCFGNODE &node; |
|
|
| ActiveChartEntryMem(MemPool &pool, const PhraseTableMemory::SCFGNODE &vnode) |
| :Parent(pool) |
| ,node(vnode) |
| {} |
|
|
| ActiveChartEntryMem( |
| MemPool &pool, |
| const PhraseTableMemory::SCFGNODE &vnode, |
| const ActiveChartEntry &prevEntry) |
| :Parent(prevEntry) |
| ,node(vnode) |
| {} |
| }; |
|
|
| |
| public: |
| PhraseTableMemory(size_t startInd, const std::string &line); |
| virtual ~PhraseTableMemory(); |
|
|
| virtual void Load(System &system); |
| virtual TargetPhrases *Lookup(const Manager &mgr, MemPool &pool, |
| InputPath &inputPath) const; |
|
|
| virtual void InitActiveChart( |
| MemPool &pool, |
| const SCFG::Manager &mgr, |
| SCFG::InputPath &path) const; |
|
|
| void Lookup(MemPool &pool, |
| const SCFG::Manager &mgr, |
| size_t maxChartSpan, |
| const SCFG::Stacks &stacks, |
| SCFG::InputPath &path) const; |
|
|
| protected: |
| PBNODE *m_rootPb; |
| SCFGNODE *m_rootSCFG; |
|
|
| void LookupGivenNode( |
| MemPool &pool, |
| const SCFG::Manager &mgr, |
| const SCFG::ActiveChartEntry &prevEntry, |
| const SCFG::Word &wordSought, |
| const Moses2::Hypotheses *hypos, |
| const Moses2::Range &subPhraseRange, |
| SCFG::InputPath &outPath) const; |
|
|
| }; |
|
|
| } |
|
|
|
|