8#ifndef RIME_CALCULUS_H_
9#define RIME_CALCULUS_H_
12#include <boost/regex.hpp>
37 map<string, Calculation::Factory*> factories_;
#define RIME_DLL
Definition rime_api.h:33
virtual ~Calculation()=default
Calculation *(const vector< string > &args) Factory
Definition calculus.h:21
virtual bool Apply(Spelling *spelling)=0
virtual bool deletion()
Definition calculus.h:27
virtual bool addition()
Definition calculus.h:26
RIME_DLL Calculus()
Definition calculus.cc:18
void Register(const string &token, Calculation::Factory *factory)
Definition calculus.cc:27
RIME_DLL Calculation * Parse(const string &definition)
Definition calculus.cc:31
map< uint32_t, uint32_t > char_map_
Definition calculus.h:47
static Factory Parse
Definition calculus.h:43
bool Apply(Spelling *spelling) override
Definition calculus.cc:70
static Factory Parse
Definition calculus.h:53
bool Apply(Spelling *spelling) override
Definition calculus.cc:112
string replacement_
Definition calculus.h:58
boost::regex pattern_
Definition calculus.h:57
bool addition() override
Definition calculus.h:66
static Factory Parse
Definition calculus.h:64
boost::regex pattern_
Definition calculus.h:69
bool Apply(Spelling *spelling) override
Definition calculus.cc:135
static Factory Parse
Definition calculus.h:75
bool deletion() override
Definition calculus.h:76
static Factory Parse
Definition calculus.h:82
bool Apply(Spelling *spelling) override
Definition calculus.cc:202
static Factory Parse
Definition calculus.h:89
bool Apply(Spelling *spelling) override
Definition calculus.cc:226
bool Apply(Spelling *spelling) override
Definition calculus.cc:237