25
25
class CHunpinSegmentor : public IPySegmentor
28
CHunpinSegmentor (EShuangpinType shpType);
30
virtual TSegmentVec& getSegments (bool) {return m_segs;}
33
virtual const wstring& getInputBuffer () {return m_inputBuf;}
35
virtual const char* getSylSeps () {return "'";}
37
virtual unsigned push (unsigned ch);
38
virtual unsigned pop ();
39
virtual unsigned insertAt (unsigned idx, unsigned ch);
40
virtual unsigned deleteAt (unsigned idx, bool backward=true);
41
virtual unsigned clear (unsigned from=0);
43
virtual unsigned updatedFrom () {return m_updatedFrom;}
28
CHunpinSegmentor (EShuangpinType shpType);
30
virtual TSegmentVec& getSegments(bool) { return m_segs; }
33
virtual const wstring& getInputBuffer() { return m_inputBuf; }
35
virtual const char* getSylSeps() { return "'"; }
37
virtual unsigned push(unsigned ch);
38
virtual unsigned pop();
39
virtual unsigned insertAt(unsigned idx, unsigned ch);
40
virtual unsigned deleteAt(unsigned idx, bool backward = true);
41
virtual unsigned clear(unsigned from = 0);
43
virtual unsigned updatedFrom() { return m_updatedFrom; }
45
45
bool load(const char * pyTrieFileName);
47
void setGetFuzzySyllablesOp (CGetFuzzySyllablesOp<CPinyinData> *op) {m_pGetFuzzySyllablesOp = op;}
47
void setGetFuzzySyllablesOp(CGetFuzzySyllablesOp<CPinyinData> *op) {
48
m_pGetFuzzySyllablesOp = op; }
53
inline unsigned _push (unsigned ch);
54
inline unsigned _clear (unsigned from);
55
inline void _addFuzzySyllables (TSegment &seg);
56
inline unsigned _updateWith (const std::string& new_pystr, unsigned from = UINT_MAX);
57
inline void _locateSegment (unsigned idx, unsigned &strIdx, unsigned &segIdx);
58
int _encode(const char* buf,int ret);
54
inline unsigned _push(unsigned ch);
55
inline unsigned _clear(unsigned from);
56
inline void _addFuzzySyllables(TSegment &seg);
57
inline unsigned _updateWith(const std::string& new_pystr,
58
unsigned from = UINT_MAX);
59
inline void _locateSegment(unsigned idx, unsigned &strIdx, unsigned &segIdx);
60
int _encode(const char* buf, int ret);
59
61
int _encode(const char* buf);
62
64
CGetFuzzySyllablesOp<CPinyinData> *m_pGetFuzzySyllablesOp;
65
67
CDATrie<short> m_pytrie;
69
TSegmentVec m_fuzzy_segs;
70
TSegmentVec m_merged_segs;
72
unsigned m_updatedFrom;
73
static CShuangpinData s_shpData;
71
TSegmentVec m_fuzzy_segs;
72
TSegmentVec m_merged_segs;
74
unsigned m_updatedFrom;
75
static CShuangpinData s_shpData;
78
78
#endif /* SUNPY_PINYIN_SEG_H */