| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #include <sstream> |
| | #include "NonTerm.h" |
| | #include "Word.h" |
| | #include "ConsistentPhrase.h" |
| | #include "Parameter.h" |
| |
|
| | using namespace std; |
| |
|
| | NonTerm::NonTerm(const ConsistentPhrase &consistentPhrase, |
| | const std::string &source, |
| | const std::string &target) |
| | :m_consistentPhrase(&consistentPhrase) |
| | ,m_source(source) |
| | ,m_target(target) |
| | { |
| | |
| |
|
| | } |
| |
|
| | NonTerm::~NonTerm() |
| | { |
| | |
| | } |
| |
|
| | std::string NonTerm::Debug() const |
| | { |
| | stringstream out; |
| | out << m_source << m_target; |
| | out << m_consistentPhrase->Debug(); |
| | return out.str(); |
| | } |
| |
|
| | void NonTerm::Output(std::ostream &out) const |
| | { |
| | out << m_source << m_target; |
| | } |
| |
|
| | void NonTerm::Output(std::ostream &out, Moses::FactorDirection direction) const |
| | { |
| | out << GetLabel(direction); |
| | } |
| |
|
| | const std::string &NonTerm::GetLabel(Moses::FactorDirection direction) const |
| | { |
| | return (direction == Moses::Input) ? m_source : m_target; |
| | } |
| |
|
| | bool NonTerm::IsHiero(Moses::FactorDirection direction, const Parameter ¶ms) const |
| | { |
| | const std::string &label = NonTerm::GetLabel(direction); |
| | return label == params.hieroNonTerm; |
| | } |
| |
|
| | bool NonTerm::IsHiero(const Parameter ¶ms) const |
| | { |
| | return IsHiero(Moses::Input, params) && IsHiero(Moses::Output, params); |
| | } |
| |
|
| | int NonTerm::GetWidth(Moses::FactorDirection direction) const |
| | { |
| | return GetConsistentPhrase().GetWidth(direction); |
| | } |
| |
|