#pragma once #include #include #include "moses/Syntax/NonTerminalMap.h" #include "moses/Syntax/SVertexStack.h" #include "moses/Syntax/SymbolEqualityPred.h" #include "moses/Syntax/SymbolHasher.h" #include "moses/Word.h" namespace Moses { namespace Syntax { namespace S2T { class SChart { public: struct Cell { typedef boost::unordered_map TMap; typedef NonTerminalMap NMap; TMap terminalStacks; NMap nonTerminalStacks; }; SChart(std::size_t width); std::size_t GetWidth() const { return m_cells.size(); } const Cell &GetCell(std::size_t start, std::size_t end) const { return m_cells[start][end]; } Cell &GetCell(std::size_t start, std::size_t end) { return m_cells[start][end]; } private: std::vector > m_cells; }; } // S2T } // Syntax } // Moses