#pragma once #include "ScoreComponentCollection.h" namespace Moses { class TargetPhrase; class InputPath; class InputType; class StackVec; class ChartTranslationOption { friend std::ostream& operator<<(std::ostream&, const ChartTranslationOption&); protected: const TargetPhrase &m_targetPhrase; ScoreComponentCollection m_scoreBreakdown; const InputPath *m_inputPath; const std::vector *m_ruleSourceFromInputPath; // used by placeholders public: ChartTranslationOption(const TargetPhrase &targetPhrase); const TargetPhrase &GetPhrase() const { return m_targetPhrase; } const InputPath *GetInputPath() const { return m_inputPath; } void SetInputPath(const InputPath *inputPath) { m_inputPath = inputPath; } const std::vector *GetSourceRuleFromInputPath() const { return m_ruleSourceFromInputPath; } void SetSourceRuleFromInputPath(const std::vector *obj) { m_ruleSourceFromInputPath = obj; } const ScoreComponentCollection &GetScores() const { return m_scoreBreakdown; } void Evaluate(const InputType &input, const InputPath &inputPath, const StackVec &stackVec); }; }