📄 vardef.h
字号:
#include "Com_Def.h"
#define SMAX 255 // 输入字符串的最大长度
#define VARMAX 16 // 变量名的最大长度
#define NUMRSV 15 // 保留字的个数
#define INTMAX 2147483647 // 整数的最大值
#define REALMAX 3.402823466E+38 // 浮点数的最大
#define SYMTOP 10000 // 符号表最大值
#define SENTENCE 0
#define EXPRESSION 1
const char reserved[NUMRSV][10]={"if","while","switch","case","default",
"printf","scanf","return","const","void",
"int","float","char","main","else"}; // 定义保留字
const int first[2][8]=
{{IFSYM,WHILESYM,LBRACKET,IDENT,SCANFSYM,PRINTFSYM,SWITCHSYM,RETURNSYM},
{PLUS,MINUS,IDENT,LPARENT,INTEGER,CHARC,REAL,NUL}};
FILE *fpIn,*fpOut,*fpErr; // 输入,输出文件句柄,错误输出文件句柄
char fileIn[SMAX], // 输入文件名
fileOut[SMAX]; // 输出文件名
char line[SMAX];
int ch; // 当前读入的字符
int lineNo; // 当前行号
int err; // 错误个数
int label; // 标号序号
struct Symbol{ // 词法分析返回的结构(单词类型、单词值)
int type;
char name[SMAX+1]; // 单词值以字符串形式表示
} sym;
Symbol buf[2]; // 存放超前扫描的单词
union unionc{
int ival;
float fval;
char cval;
};
struct Symtb { // 符号表结构
char name[SMAX+1]; // 名字
int type; // 类型
int kind; // 种类
unionc val; // 常量的值
int lev; // 层号
};
Symtb symTable[SYMTOP]; // 符号表
int tTop; // 符号表栈顶指针
int level; // 层号
int tbIndex[SYMTOP]; // 分程序索引表
int curLine; // 当前程序所在的行号
int lineN[2]; // 向后扫描两个字符后的行号
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -