00001 #pragma once 00002 00003 #include "RuleTrie.h" 00004 00005 namespace Moses 00006 { 00007 namespace Syntax 00008 { 00009 namespace S2T 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 GetOrCreateTargetPhraseCollection 00023 // function. 00024 TargetPhraseCollection::shared_ptr 00025 GetOrCreateTargetPhraseCollection 00026 ( RuleTrie &trie, const Phrase &source, const TargetPhrase &target, 00027 const Word *sourceLHS) { 00028 return trie.GetOrCreateTargetPhraseCollection(source, target, sourceLHS); 00029 } 00030 }; 00031 00032 } // namespace S2T 00033 } // namespace Syntax 00034 } // namespace Moses