librime 1.2
Rime Input Method Engine, the core library
simplifier.h
Go to the documentation of this file.
1//
2// Copyright RIME Developers
3// Distributed under the BSD License
4//
5// 2011-12-12 GONG Chen <chen.sst@gmail.com>
6//
7#ifndef RIME_SIMPLIFIER_H_
8#define RIME_SIMPLIFIER_H_
9
10#include <rime/filter.h>
11#include <rime/algo/algebra.h>
13
14namespace rime {
15
16class Opencc;
17
18class Simplifier : public Filter, TagMatching {
19 public:
20 Simplifier(const Ticket& ticket, an<Opencc> opencc);
21
22 virtual an<Translation> Apply(an<Translation> translation,
23 CandidateList* candidates);
24
25 virtual bool AppliesToSegment(Segment* segment) { return TagsMatch(segment); }
26
27 bool Convert(const an<Candidate>& original, CandidateQueue* result);
28
29 protected:
31
32 void PushBack(const an<Candidate>& original,
33 CandidateQueue* result,
34 const string& simplified);
35
37 // settings
40 set<string> excluded_types_;
41 bool show_in_comment_ = false;
42 bool inherit_comment_ = true;
44 bool random_ = false;
45};
46
47class SimplifierComponent : public Simplifier::Component {
48 public:
50 Simplifier* Create(const Ticket& ticket);
51
52 private:
54};
55
56} // namespace rime
57
58#endif // RIME_SIMPLIFIER_H_
Definition algebra.cc:12
std::shared_ptr< T > an
Definition common.h:60
list< of< Candidate > > CandidateQueue
Definition candidate.h:51
boost::unordered_map< Key, T > hash_map
Definition common.h:53
vector< of< Candidate > > CandidateList
Definition candidate.h:52
Definition algebra.h:29
Filter(const Ticket &ticket)
Definition filter.h:24
TagMatching(const Ticket &ticket)
Definition filter_commons.cc:14
bool TagsMatch(Segment *segment)
Definition filter_commons.cc:27
Definition simplifier.cc:32
Definition simplifier.h:18
TipsLevel tips_level_
Definition simplifier.h:38
void PushBack(const an< Candidate > &original, CandidateQueue *result, const string &simplified)
Definition simplifier.cc:234
bool inherit_comment_
Definition simplifier.h:42
string option_name_
Definition simplifier.h:39
Simplifier(const Ticket &ticket, an< Opencc > opencc)
Definition simplifier.cc:169
bool random_
Definition simplifier.h:44
set< string > excluded_types_
Definition simplifier.h:40
TipsLevel
Definition simplifier.h:30
@ kTipsNone
Definition simplifier.h:30
@ kTipsAll
Definition simplifier.h:30
@ kTipsChar
Definition simplifier.h:30
an< Opencc > opencc_
Definition simplifier.h:36
virtual an< Translation > Apply(an< Translation > translation, CandidateList *candidates)
Definition simplifier.cc:223
Projection comment_formatter_
Definition simplifier.h:43
bool show_in_comment_
Definition simplifier.h:41
virtual bool AppliesToSegment(Segment *segment)
Definition simplifier.h:25
bool Convert(const an< Candidate > &original, CandidateQueue *result)
Definition simplifier.cc:264
Simplifier * Create(const Ticket &ticket)
Definition simplifier.cc:300
SimplifierComponent()
Definition simplifier.cc:298
Definition segmentation.h:18
Definition ticket.h:17