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

📄 scanner.h

📁 用VC++实现了一个编译器的功能
💻 H
字号:
#ifndef SCANNER_H
#define SCANNER_H
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdarg.h>
#include <math.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
};
typedef double (*MathFuncPtr)(double);
struct Token
{Token_Type  type;
 char* lexeme;
 double value;
 double (*FuncPtr)(double);
}

static 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 + -