#pragma once #include "StackVec.h" #include #include "TargetPhraseCollection.h" namespace Moses { class TargetPhraseCollection; class Range; class TargetPhrase; class InputPath; class InputType; class ChartCellLabel; class ChartParserCallback { public: virtual ~ChartParserCallback() {} virtual void Add(const TargetPhraseCollection &, const StackVec &, const Range &) = 0; virtual bool Empty() const = 0; virtual void AddPhraseOOV(TargetPhrase &phrase, std::list &waste_memory, const Range &range) = 0; virtual void EvaluateWithSourceContext(const InputType &input, const InputPath &inputPath) = 0; virtual float GetBestScore(const ChartCellLabel *chartCell) const = 0; }; } // namespace Moses