librime 1.2
Rime Input Method Engine, the core library
recognizer.h
Go to the documentation of this file.
1//
2// Copyright RIME Developers
3// Distributed under the BSD License
4//
5// 2012-01-01 GONG Chen <chen.sst@gmail.com>
6//
7#ifndef RIME_RECOGNIZER_H_
8#define RIME_RECOGNIZER_H_
9
10#include <boost/regex.hpp>
11#include <rime/common.h>
12#include <rime/processor.h>
13
14namespace rime {
15
16class Config;
17class Segmentation;
18
20 string tag;
21 size_t start = 0, end = 0;
22
23 RecognizerMatch() = default;
24 RecognizerMatch(const string& a_tag, size_t a_start, size_t an_end)
25 : tag(a_tag), start(a_start), end(an_end) {}
26
27 bool found() const { return start < end; }
28};
29
30class RecognizerPatterns : public map<string, boost::regex> {
31 public:
32 void LoadConfig(Config* config, const string& name_space);
33 RecognizerMatch GetMatch(const string& input,
34 const Segmentation& segmentation) const;
35};
36
37class Recognizer : public Processor {
38 public:
39 Recognizer(const Ticket& ticket);
40
41 virtual ProcessResult ProcessKeyEvent(const KeyEvent& key_event);
42
43 protected:
45 bool use_space_ = false;
46};
47
48} // namespace rime
49
50#endif // RIME_RECOGNIZER_H_
Definition algebra.cc:12
ProcessResult
Definition processor.h:18
Definition config_component.h:21
Definition recognizer.h:19
size_t end
Definition recognizer.h:21
size_t start
Definition recognizer.h:21
string tag
Definition recognizer.h:20
bool found() const
Definition recognizer.h:27
RecognizerMatch(const string &a_tag, size_t a_start, size_t an_end)
Definition recognizer.h:24
Definition recognizer.h:30
RecognizerMatch GetMatch(const string &input, const Segmentation &segmentation) const
Definition recognizer.cc:39
void LoadConfig(Config *config, const string &name_space)
Definition recognizer.cc:35
bool use_space_
Definition recognizer.h:45
RecognizerPatterns patterns_
Definition recognizer.h:44
Recognizer(const Ticket &ticket)
Definition recognizer.cc:72
virtual ProcessResult ProcessKeyEvent(const KeyEvent &key_event)
Definition recognizer.cc:84
Definition key_event.h:17
Processor(const Ticket &ticket)
Definition processor.h:26
Definition segmentation.h:60
Definition ticket.h:17