|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once |
|
|
|
#include <list> |
|
#include <vector> |
|
#include "Range.h" |
|
#include "StackVec.h" |
|
#include "InputPath.h" |
|
#include "TargetPhraseCollection.h" |
|
namespace Moses |
|
{ |
|
|
|
class ChartParserCallback; |
|
class ChartRuleLookupManager; |
|
class InputType; |
|
class Sentence; |
|
class ChartCellCollectionBase; |
|
class Word; |
|
class Phrase; |
|
|
|
class DecodeGraph; |
|
|
|
class ChartParserUnknown |
|
{ |
|
ttaskwptr m_ttask; |
|
public: |
|
ChartParserUnknown(ttasksptr const& ttask); |
|
~ChartParserUnknown(); |
|
|
|
void Process(const Word &sourceWord, const Range &range, ChartParserCallback &to); |
|
|
|
const std::vector<Phrase*> &GetUnknownSources() const { |
|
return m_unksrcs; |
|
} |
|
|
|
private: |
|
std::vector<Phrase*> m_unksrcs; |
|
std::list<TargetPhraseCollection::shared_ptr> m_cacheTargetPhraseCollection; |
|
AllOptions::ptr const& options() const; |
|
}; |
|
|
|
class ChartParser |
|
{ |
|
ttaskwptr m_ttask; |
|
public: |
|
ChartParser(ttasksptr const& ttask, ChartCellCollectionBase &cells); |
|
~ChartParser(); |
|
|
|
void Create(const Range &range, ChartParserCallback &to); |
|
|
|
|
|
|
|
long GetTranslationId() const; |
|
size_t GetSize() const; |
|
const InputPath &GetInputPath(size_t startPos, size_t endPos) const; |
|
const InputPath &GetInputPath(const Range &range) const; |
|
const std::vector<Phrase*> &GetUnknownSources() const { |
|
return m_unknown.GetUnknownSources(); |
|
} |
|
|
|
AllOptions::ptr const& options() const; |
|
|
|
private: |
|
ChartParserUnknown m_unknown; |
|
std::vector <DecodeGraph*> m_decodeGraphList; |
|
std::vector<ChartRuleLookupManager*> m_ruleLookupManagers; |
|
InputType const& m_source; |
|
|
|
typedef std::vector< std::vector<InputPath*> > InputPathMatrix; |
|
InputPathMatrix m_inputPathMatrix; |
|
|
|
void CreateInputPaths(const InputType &input); |
|
InputPath &GetInputPath(size_t startPos, size_t endPos); |
|
|
|
}; |
|
|
|
} |
|
|
|
|