📄 liblexic.h
字号:
// LibLexic.h: interface for the CLibLexic class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_LIBLEXIC_H__AB89B026_E44E_11D8_B464_0000E8E7E526__INCLUDED_)
#define AFX_LIBLEXIC_H__AB89B026_E44E_11D8_B464_0000E8E7E526__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <string>
#include <vector>
#define WORDLEN 31
//注意这个和CLexBTree中的一致
using namespace std;
struct SWordTag{
unsigned int nTag;
// 注意tag是从 1 开始编号的,因为这样可以和
// CLexBTree中的ClearCell一致
char cstrWord[WORDLEN+1];
};
class CLibLexic
{
public:
CLibLexic();
virtual ~CLibLexic();
protected:
bool FitPattern (string strWord,string& strPattern);
bool FitPatternEx (string strWord,string& strPattern);
bool FitPatternExEx(string strTemp,string& strPattern);
bool NumeralDigits (string strWord);
bool NumeralFloat (string strWord);
bool NumeralInteger(string strWord);
bool PatternNumeral(string strNum,string& strNumPat);
bool PatternAlphas (string str);
bool PatternAD (string strWord,string& strPattern);
bool PatternDD (string strWord,string& strPattern);
bool PatternDA (string strWord,string& strPattern);
bool PatternIS (string strWord,string& strPattern);
bool PatternLSR (string strWord,string& strPattern);
bool IsVerbose(string strWord);
bool IsMalform(string strWord);
bool IsPureDigits(string str);
bool IsSentence(string str);
void Normalize(string str);
void RecordTagWords(string strTag,string strWords);
void PartitionWords(string strWords,vector<string>& vecWords);
void TrimWord(string& strWord);
bool TrimAndTell(string &strWord);
void ToLower(string &str);
unsigned int ReplaceTagStrByInt(string strTag);
protected:
enum {
STATE_S_A ,
STATE_S_B ,
STATE_S_C ,
STATE_S_D ,
STATE_S_E ,
STATE_S_0 ,
STATE_S_1 ,
STATE_S_2 ,
STATE_S_3 ,
STATE_S_4 ,
STATE_S_5 ,
STATE_S_6 ,
STATE_S_7 ,
STATE_S_8 ,
STATE_S_9
};
public:
bool Analyse(string str);
vector<SWordTag> m_vecWordTag;
string m_strLine;
int m_aryAllWordTagNum[62];
int m_aryRecWordTagNum[62];
int m_aryTagLattice[62][62];
int m_nPreTag;
};
#endif // !defined(AFX_LIBLEXIC_H__AB89B026_E44E_11D8_B464_0000E8E7E526__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -