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

📄 scanner.h

📁 编译器:用于实现一个简单的编译器的语法分析功能
💻 H
字号:
//---------------------------------------
#ifndef SCANER_H
#define SCANER_H
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdarg.h>
#include <math.h>

	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
	};

    typedef double (*MathFuncPtr)(double);
	struct Token
	{
		Token_Type type;
		char *lexeme;
		double value;
		double (*FoucPtr)(double);
	};
	static Token TokenTab[]=
	{
		{CONST_ID,	"PI",	3.1415926,	 NULL},
		{CONST_ID,	"E",	2.71828,	 NULL},
		{T,	"T",	0.0,	NULL},
		{FUNC,	"SIN",	0.0,	sin},
		{FUNC,	"COS",	0.0,	cos},
		{FUNC,	"TAN",	0.0,	tan},
		{FUNC,	"LN",	0.0,	log},
		{FUNC,	"EXP",	0.0,	exp},
		{FUNC,	"SQRT",	0.0,	sqrt},
		{ORIGIN,	"ORIGIN",	0.0,	NULL},
		{SCALE,	"SCALE",	0.0,	NULL},
		{ROT,	"ROT",	0.0,	NULL},
		{IS,	"IS",	0.0,	NULL},
		{FOR,	"FOR",	0.0,	NULL},
		{FROM,	"FROM",	0.0,	NULL},
		{TO,	"TO",	0.0,	NULL},
		{STEP,	"STEP",	0.0,	NULL},
		{DRAW,	"DRAW",	0.0,	NULL}
	};
//-------------------------------------------
extern unsigned int LineNo;
extern int InitScanner (const char *);
extern Token GetToken(void);
extern void CloseScanner(void);
#endif

⌨️ 快捷键说明

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