📄 scan.h
字号:
// scan.h: interface for the scan class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SCAN_H__81332AC9_0069_4026_BEA9_20CFB9111DA6__INCLUDED_)
#define AFX_SCAN_H__81332AC9_0069_4026_BEA9_20CFB9111DA6__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class scan
{
public:
scan();
virtual ~scan();
CString Analyze(CString s,int row,int count);
public:
void Error(char ch);
CString AddWordTable();
int ErrNum();
bool IsInWordTable(CString word,unsigned &p);
void AddToken(CString s,int word,int num);
bool IsIdent(char ch);
bool IsKeyword(CString word,int &token);
bool IsNumber(char ch);
bool IsLetter(char ch);
void Sort(char ch);
void Recogdel(char ch);
void Recogstr(char ch);
void Recogdig(char ch);
void Recogid(char ch);
void Handlecom(char ch);
void LookUp(CString word,int kind,unsigned &entry);
char ScanNextChar();
CString strtoken; //返回token
CString addwordtable; //返回符号表信息
CString err; //返回错误信息
int errnum; //返回错误个数
private:
int row; //行计数器
int col; //列计数器
int count; //行总数
char buf[100]; //待处理的一行数据的缓存
//Token结构
typedef struct _token
{
int word;
int num;
}Token,*lpToken;
//符号表
typedef struct _wordtable
{
unsigned start;//起始位置
unsigned len;//单词长度
CString type;//类型
CString kind;//种类
CString val;//值
}WordTable,*lpWordTable;
//字符串表
typedef struct _strtable
{
unsigned point;
char strtabe[1000];
}strtable,*lpstrtable;
//保存符号表信息
WordTable m_wt[100];
unsigned p_wt; //
//保存字符串表信息
strtable m_st;
int wordtablenum;//符号表中单词的计数器
};
#endif // !defined(AFX_SCAN_H__81332AC9_0069_4026_BEA9_20CFB9111DA6__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -