hindi-sindhi-docker
/
mosesdecoder
/moses
/Syntax
/S2T
/Parsers
/Scope3Parser
/PatternApplicationTrie.h
| namespace Moses | |
| { | |
| namespace Syntax | |
| { | |
| namespace S2T | |
| { | |
| struct PatternApplicationTrie; | |
| typedef std::vector<const PatternApplicationTrie*> PatternApplicationKey; | |
| struct PatternApplicationTrie { | |
| public: | |
| PatternApplicationTrie(int start, int end, const RuleTrieScope3::Node &node, | |
| const PVertex *pvertex, PatternApplicationTrie *parent) | |
| : m_start(start) | |
| , m_end(end) | |
| , m_node(&node) | |
| , m_pvertex(pvertex) | |
| , m_parent(parent) | |
| , m_highestTerminalNode(0) | |
| , m_lowestTerminalNode(0) {} | |
| ~PatternApplicationTrie() { | |
| RemoveAllInColl(m_children); | |
| } | |
| int Depth() const; | |
| bool IsGapNode() const { | |
| return m_end == -1; | |
| } | |
| bool IsTerminalNode() const { | |
| return m_end != -1; | |
| } | |
| const PatternApplicationTrie *GetHighestTerminalNode() const; | |
| const PatternApplicationTrie *GetLowestTerminalNode() const; | |
| void DetermineStartRange(int, int &, int &) const; | |
| void DetermineEndRange(int, int &, int &) const; | |
| void Extend(const RuleTrieScope3::Node &node, int minPos, | |
| const SentenceMap &sentMap, bool followsGap); | |
| void ReadOffPatternApplicationKey(PatternApplicationKey &) const; | |
| int m_start; | |
| int m_end; | |
| const RuleTrieScope3::Node *m_node; | |
| const PVertex *m_pvertex; | |
| PatternApplicationTrie *m_parent; | |
| std::vector<PatternApplicationTrie*> m_children; | |
| mutable const PatternApplicationTrie *m_highestTerminalNode; | |
| mutable const PatternApplicationTrie *m_lowestTerminalNode; | |
| }; | |
| } // namespace S2T | |
| } // namespace Syntax | |
| } // namespace Moses | |