📄 rexinterface.h
字号:
#ifndef REX_INTERFACE_INCLUDED_
#define REX_INTERFACE_INCLUDED_
#include "RexAlgorithm.h"
struct REXI_DefErr{
enum{eNoErr,eErrInName,eErrInRegExp} eErrCode;
string strErrMsg;
int nErrOffset;
};
class REXI_Base{
public:
REXI_Base(char cEos='\0');
virtual ~REXI_Base()=0;
inline void SetSource (const char* pszSource);
inline const char* GetSource ()const;
REXI_DefErr AddRegDefinition (string strName,string strRegExp,
int nIdAnswer);
void GetRegDefinitions (vector<string>& vecDefinitions);
void RemoveRegDefinition (string strName);
REXI_DefErr SetRegexp (string strRegExp);
protected:
inline void FreeMemory ();
//source,source position and end of string character
char m_cEos;
const char* m_pszSource;
const char* m_pszTokenBeg;
const char* m_pszTokenEnd;
//algorithmic objects
REXA_Parser m_regexpParser;
REXA_DFAState* m_pStartState;
};
class REXI_Search : public REXI_Base
{
public:
REXI_Search(char cEos='\0');
REXI_DefErr
AddRegDef (string strName,string strRegExp);
inline REXI_DefErr
SetRegexp (string strRegExp);
bool MatchHere (const char*& rpcszSrc, int& nMatchLen,bool& bEos);
bool Find (const char*& rpcszSrc, int& nMatchLen,bool& bEos);
private:
bool MatchHereImpl();
int m_nIdAnswer;
};
inline const char* REXI_Base::GetSource()const {return m_pszSource;}
inline void REXI_Base::SetSource(const char* pszSource)
{
m_pszSource= pszSource;m_pszTokenBeg= m_pszTokenEnd=pszSource;
}
inline REXI_DefErr REXI_Search::SetRegexp (string strRegExp)
{
return REXI_Base::SetRegexp(strRegExp);
}
inline void REXI_Base::FreeMemory() {m_pStartState->DeleteAll();}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -