scanner.h
来自「一个采用面向对象实现编译解释器,自己验证过绝对能用.」· C头文件 代码 · 共 61 行
H
61 行
#ifndef SCANNER_H
#define SCANNER_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 (*FuncPtr)(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 + =
减小字号Ctrl + -
显示快捷键?