⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 analyzer.h

📁 这是一个词法语法分析器
💻 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 + -