📄 cifa.h
字号:
/****************************************************/
/* 文件: Cifa.h */
/*词法分析器 */
/*作者:赖荣凤 02282021 */
/*2004年10月30日 */
/****************************************************/
// Cifa.h: interface for the CCifa class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CIFA_H__EE1B915F_7E82_46EC_B52E_9C6AF70F20B4__INCLUDED_)
#define AFX_CIFA_H__EE1B915F_7E82_46EC_B52E_9C6AF70F20B4__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/*
#define NOTICE 1
/*以下是读文件时的状态*/
/*#define MYEOF 200
#define READING 201
#define NULLSY 0
#define IFSY 1//if
#define ELSESY 2//else
#define WHILESY 3//while
#define RETURNSY 4//return
#define MAINSY 5//main
#define FORSY 6//for
#define FALSESY 7//false
#define TURESY 8//ture
#define INTSY 9//int
#define IDSY 20//标识符
#define VOIDSY 21//void
#define DIGITSY 22//数字
#define PLUSSY 23// +
#define MINUSSY 24// -
#define STARSY 25// *
#define DIVISY 26// /
#define LPARSY 27//(
#define RPARSY 28//)
#define COMMASY 29//,
#define SEMISY 30//;
#define ASSIGNSY 31//=
#define EQUSY 32//==
#define LESSSY 33//<
#define LESSEQUSY 34//<=
#define GREATSY 35//>
#define GREATEQUSY 36//>=
#define UNEQUSY 37//!=
#define LMPARSY 38//[
#define RMPARSY 39//]
#define LBPARSY 40//{
#define RBPARSY 41//}
#define ORSY 42//||
#define ANDSY 43//&&
#define NOTSY 44//!
//.#define DOTST 45//.
#define ADDADDSY 46//++
#define SUBSUBSY 47//--
#define INPUTSY 48//>>
#define OUTPUTSY 49//<<
#define CSTRINGSY 50//字符串*/
#include "Error.h"
typedef struct
{
int tokentype;
char *pchar;
}TOKEN;
class Cifa
{
protected:
Error* theError;
CEdit* theEdit;//源程序所在控件
int line_no;//行号
char pchar;//待分析字符
char buf[201];//从文件中读出一行程序段
int lenth;//从文件中读出的程序段长
int current;//当前分析字符在line中的位置
char token[50];//词法分析的 短语
int token_lenth;
void GetChar(void);//读下一字符
int GetNBC(void);//每次调用检查pchar是否为空,若为空反复调用GetChar直至不为空
void Cat(void);//把*pchar 与token 相连接
int Letter(void);//判断*pchar中的字符是否为字母
int Digit(void);//判断*pchar中的字符是否为数字
// void Retract(void);//退回一格
int Reserve(void);//查关键字
// int strtoint(void);//将token中的数字串转化为数值
void MyError(int type,int lineno);//错误处理
public:
Cifa(CEdit* MyEdit,Error* MyError);
~Cifa(void);
int GetNextToken(TOKEN *t);//获取下一个token的类型和值
int GetLineNO();
};
#endif // !defined(AFX_CIFA_H__EE1B915F_7E82_46EC_B52E_9C6AF70F20B4__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -