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

📄 lex.h

📁 一个简单的图形解释语言编译程序,使用visual C++ 6.0开发
💻 H
字号:
// Lex.h: interface for the CLex class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_LEX_H__7A4BB173_9F30_4D74_89BF_E0F52B79007E__INCLUDED_)
#define AFX_LEX_H__7A4BB173_9F30_4D74_89BF_E0F52B79007E__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <math.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>

#define TOKEN_LEN 100

enum Token_Type
{
	ORIGIN,SCALE,ROT,IS,
	TO,STEP,DRAW,FOR,FROM,
	T,
	SEMICO,L_BRACKET,R_BRACKET,COMMA,
	PLUS,MINUS,MUL,DIV,POWER,
	FUNC,
	CONST_ID,
	NONTOKEN,
	ERRTOKEN
};
struct Token
{
	Token_Type type;
	char *lexeme;
	double value;
	double (*FuncPtr) (double);
};
class CLex  
{
public:
	Token JudgeKeyToken(const char*IDString);
	void EmptyTokenString();
	void AddCharTokenString(char c);
	void BackChar(char c);
	char GetChar();
	void CloseLex();
	int m_KeyCount;
	unsigned int m_LineNo;
	char TokenBuffer[TOKEN_LEN];
	bool InitLex(char *FileName);
	CLex();
	CLex(FILE *p);
	virtual ~CLex();
	Token *m_ptt;
	FILE *m_Infile;
	Token GetToken();

};

#endif // !defined(AFX_LEX_H__7A4BB173_9F30_4D74_89BF_E0F52B79007E__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -