00001 #pragma once 00002 00003 #include "RuleTrie.h" 00004 00005 namespace Moses 00006 { 00007 namespace Syntax 00008 { 00009 namespace T2S 00010 { 00011 00012 // Base for classes that create a RuleTrie (currently RuleTrieLoader and 00013 // OovHandler). RuleTrieCreator is a friend of RuleTrie. 00014 class RuleTrieCreator 00015 { 00016 protected: 00017 // Provide access to RuleTrie's private SortAndPrune function. 00018 void SortAndPrune(RuleTrie &trie, std::size_t limit) { 00019 trie.SortAndPrune(limit); 00020 } 00021 00022 // Provide access to RuleTrie's private 00023 // GetOrCreateTargetPhraseCollection function. 00024 TargetPhraseCollection::shared_ptr GetOrCreateTargetPhraseCollection( 00025 RuleTrie &trie, const Word &sourceLHS, const Phrase &sourceRHS) { 00026 return trie.GetOrCreateTargetPhraseCollection(sourceLHS, sourceRHS); 00027 } 00028 }; 00029 00030 } // namespace T2S 00031 } // namespace Syntax 00032 } // namespace Moses