librime 1.2
Rime Input Method Engine, the core library
table_translator.h
Go to the documentation of this file.
1//
2// Copyright RIME Developers
3// Distributed under the BSD License
4//
5// 2011-07-10 GONG Chen <chen.sst@gmail.com>
6//
7#ifndef RIME_TABLE_TRANSLATOR_H_
8#define RIME_TABLE_TRANSLATOR_H_
9
10#include <rime/common.h>
11#include <rime/config.h>
12#include <rime/translation.h>
13#include <rime/translator.h>
14#include <rime/algo/algebra.h>
17#include <rime/gear/memory.h>
19
20namespace rime {
21
22class Poet;
24
26 public Memory,
27 public TranslatorOptions {
28 public:
29 TableTranslator(const Ticket& ticket);
30
31 virtual an<Translation> Query(const string& input, const Segment& segment);
32 virtual bool Memorize(const CommitEntry& commit_entry);
33
34 an<Translation> MakeSentence(const string& input,
35 size_t start,
36 bool include_prefix_phrases = false);
37 string GetPrecedingText(size_t start) const;
38 UnityTableEncoder* encoder() const { return encoder_.get(); }
39
40 protected:
42 bool enable_encoder_ = false;
43 bool enable_sentence_ = true;
50};
51
53 public:
55 const Language* language,
56 const string& input,
57 size_t start,
58 size_t end,
59 const string& preedit,
60 DictEntryIterator&& iter = {},
61 UserDictEntryIterator&& uter = {});
62
63 virtual bool Next();
64 virtual an<Candidate> Peek();
65
66 protected:
67 virtual bool FetchMoreUserPhrases() { return false; }
68 virtual bool FetchMoreTableEntries() { return false; }
69
70 bool CheckEmpty();
71 bool PreferUserPhrase();
72
73 an<DictEntry> PreferredEntry(bool prefer_user_phrase) {
74 return prefer_user_phrase ? uter_.Peek() : iter_.Peek();
75 }
76
79 string input_;
80 size_t start_;
81 size_t end_;
82 string preedit_;
85};
86
87} // namespace rime
88
89#endif // RIME_TABLE_TRANSLATOR_H_
Definition algebra.cc:12
std::shared_ptr< T > an
Definition common.h:60
std::unique_ptr< T > the
Definition common.h:58
Definition dictionary.h:26
an< DictEntry > Peek()
Definition dictionary.cc:153
Definition user_dictionary.h:18
an< DictEntry > Peek()
Definition user_dictionary.cc:126
Definition memory.h:24
Memory(const Ticket &ticket)
Definition memory.cc:58
Definition poet.h:26
bool enable_charset_filter_
Definition table_translator.h:41
an< Translation > MakeSentence(const string &input, size_t start, bool include_prefix_phrases=false)
Definition table_translator.cc:543
bool sentence_over_completion_
Definition table_translator.h:44
int max_homographs_
Definition table_translator.h:47
TableTranslator(const Ticket &ticket)
Definition table_translator.cc:211
bool enable_sentence_
Definition table_translator.h:43
string GetPrecedingText(size_t start) const
Definition table_translator.cc:358
virtual an< Translation > Query(const string &input, const Segment &segment)
Definition table_translator.cc:244
int max_phrase_length_
Definition table_translator.h:46
the< Poet > poet_
Definition table_translator.h:48
UnityTableEncoder * encoder() const
Definition table_translator.h:38
bool encode_commit_history_
Definition table_translator.h:45
virtual bool Memorize(const CommitEntry &commit_entry)
Definition table_translator.cc:311
bool enable_encoder_
Definition table_translator.h:42
the< UnityTableEncoder > encoder_
Definition table_translator.h:49
bool PreferUserPhrase()
Definition table_translator.cc:102
UserDictEntryIterator uter_
Definition table_translator.h:84
DictEntryIterator iter_
Definition table_translator.h:83
size_t end_
Definition table_translator.h:81
size_t start_
Definition table_translator.h:80
virtual bool FetchMoreUserPhrases()
Definition table_translator.h:67
const Language * language_
Definition table_translator.h:78
virtual bool FetchMoreTableEntries()
Definition table_translator.h:68
an< DictEntry > PreferredEntry(bool prefer_user_phrase)
Definition table_translator.h:73
virtual bool Next()
Definition table_translator.cc:54
string preedit_
Definition table_translator.h:82
TranslatorOptions * options_
Definition table_translator.h:77
string input_
Definition table_translator.h:79
virtual an< Candidate > Peek()
Definition table_translator.cc:73
bool CheckEmpty()
Definition table_translator.cc:96
TableTranslation(TranslatorOptions *options, const Language *language, const string &input, size_t start, size_t end, const string &preedit, DictEntryIterator &&iter={}, UserDictEntryIterator &&uter={})
Definition table_translator.cc:33
Definition translator_commons.h:143
TranslatorOptions(const Ticket &ticket)
Definition translator_commons.cc:115
Definition unity_table_encoder.h:19
Definition language.h:12
Definition segmentation.h:18
Definition ticket.h:17
Translation()=default
Translator(const Ticket &ticket)
Definition translator.h:24