📄 analyzer.h
字号:
// Analyzer.h: interface for the CAnalyzer class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ANALYZER_H__B38AA0D2_FCAA_4CBF_BCCC_A798F3DB9E42__INCLUDED_)
#define AFX_ANALYZER_H__B38AA0D2_FCAA_4CBF_BCCC_A798F3DB9E42__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define MAX_LEX_LEN 10
#define LEX_DUAD_TABLE_LEN 1000
#define MAX_NUMBER_LEN 8
#define KEY_WORD_TABLE_LEN 80
#define ERROR_TABLE_LEN 100
#define ERROR_MESSAGE_LEN 100
#define SOURSE_BUFFER_LEN 30000
struct CifaResult
{
int type; //0:error,1:id,2:num,3:keyword and operator,-1:end note
int value; //二元式中value值
char text[MAX_LEX_LEN]; //单词
int address; //源文件缓冲区中地址
};
class CAnalyzer
{
public:
int ErrorAddr;
int YuErrorNo;
int YuFafenxi();
void Initial();
void CiFafenxi();
CAnalyzer();
virtual ~CAnalyzer();
char m_aSourse[SOURSE_BUFFER_LEN];
CifaResult * m_tCifa[LEX_DUAD_TABLE_LEN];
char m_tErrorMessage[ERROR_TABLE_LEN][ERROR_MESSAGE_LEN];
protected:
int FindInBL(char *a);
int GuanXi();
int GuanXiShi();
int YinZi();
int Xiang();
int BoolBiaoDaShi();
int BiaoDaShi();
int XunHuanYuJu();
int TiaoJianYuJu();
int FuZhiYuJu();
int FuHeYuJu();
int YuJu();
int YuJuChuan();
int BLshengming();
int shengming();
int Chengxuti();
CifaResult * GetNextRS();
CifaResult * GetCurRS();
char GetCurCh();
char GetNextCh();
char GetCh();
int FindInCifaTab(char *);
int FindInKeyWordTab(char *);
int m_ntCifaLen;
private:
char BianLiang[KEY_WORD_TABLE_LEN][MAX_LEX_LEN];
int m_pCurRS;
int m_pCurCh;
char m_tKeyWord[KEY_WORD_TABLE_LEN][MAX_LEX_LEN];
};
#endif // !defined(AFX_ANALYZER_H__B38AA0D2_FCAA_4CBF_BCCC_A798F3DB9E42__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -