#pragma once #ifndef EXTRACT_GHKM_STSG_RULE_H_ #define EXTRACT_GHKM_STSG_RULE_H_ #include #include "Rule.h" #include "Subgraph.h" namespace MosesTraining { namespace Syntax { namespace GHKM { class Node; class StsgRule : public Rule { public: StsgRule(const Subgraph &fragment); const std::vector &GetSourceSide() const { return m_sourceSide; } const Subgraph &GetTargetSide() const { return m_targetSide; } const std::vector &GetNonTermAlignment() const { return m_nonTermAlignment; } int Scope() const { return Rule::Scope(m_sourceSide); } private: std::vector m_sourceSide; Subgraph m_targetSide; std::vector m_nonTermAlignment; }; } // namespace GHKM } // namespace Syntax } // namespace MosesTraining #endif