📄 common.h
字号:
#ifndef COMMON_H_
#define COMMON_H_
#define LENGTH 60
#define ENDL 15
#define ENDW 64
/************************************************************************/
const int PROG_SIZE = 10000; //程序的最大大小
const int MAX_T_LEN = 128; //令牌的最大长度
const int MAX_ID_LEN = 31; //标识符的最大长度
/************************************************************************/
//令牌类型的枚举量定义
enum tok_types
{
UNDEFTT, DELIMITER, IDENTIFIER,
NUMBER, KEYWORD, TEMP, STRING, BLOCK
};
//令牌内部表现形式的枚举量定义
enum token_ireps
{
myUNDEFTOK, myARG, myCHAR, myINT, mySWITCH,
myCASE, myIF, myELSE, myFOR, myDO, myWHILE, myBREAK,
myRETURN, myCOUT, myCIN, myEND
};
//双目操作符的枚举量定义
enum double_ops
{
LT = 1, LE, GT, GE, EQ, NE, LS, RS, INC, DEC
};
//语法错误信息枚举量定义
enum error_msg
{
SYNTAX, NO_EXP, NOT_VAR, DUP_VAR, DUP_FUNC,
SEMI_EXPECTED, UNBAL_BRACES, FUNC_UNDEF,
TYPE_EXPECTED, RET_NOCALL, PAREN_EXPECTED,
WHILE_EXPECTED, QUOTE_EXPECTED, DIV_BY_ZERO,
BRACE_EXPECTED, COLON_EXPECTED
};
/************************************************************************/
//关键字查找表格
//关键字必须输入小写
struct commands
{
char command[20];
token_ireps tok;
}
com_table[] = {
"if", myIF,
"else",myELSE,
"for", myFOR,
"do", myDO,
"while", myWHILE,
"char", myCHAR,
"int", myINT,
"return", myRETURN,
"switch", mySWITCH,
"break", myBREAK,
"case", myCASE,
"cout", myCOUT,
"cin", myCIN,
"", myEND
};
/************************************************************************/
//抛出的异常类
class InterpExc
{
private:
error_msg err;
public:
InterpExc(error_msg e)
{
err = e;
}
error_msg get_err()
{
return err;
}
};
/************************************************************************/
/**
获取令牌
*/
tok_types get_token();
/**
返回一个令牌到输入流中
*/
void putback();
/**
判断c是否一个分隔符号
*/
bool isdelim(char c);
/**
在token table中查找一个令牌的内部形式
*/
token_ireps look_up(char* s);
/**
装入一个程序
*/
bool load_program(char* p, char* fname);
/**
显示一个错误信息
*/
void sntx_err(error_msg error);
///**
//得到当前行
//*/
//int getline();
/************************************************************************/
#endif // COMMON_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -