📄 error.h
字号:
#ifndef _ERROR_H_#define _ERROR_H_/* * error.h * * author: Mik * * 11/12/2005 *//* errno(32-bit): define the error no*/typedef int errno_t;typedef struct err_struct { errno_t errno; /* the error number */ char **err_msg; /* error message arrary */ char *err_info; /* error information */ struct err_struct *next; /* next error message */} err_link_t;/* operand error */#define ERR_SLBRACKET 0x1#define ERR_SRBRACKET 0x2#define ERR_CAST 0x4#define ERR_PREFIX 0x8#define ERR_MLBRACKET 0x10#define ERR_MRBRACKET 0x20#define ERR_BASE 0x40#define ERR_INDEX 0x80#define ERR_SCALE 0x100#define ERR_DISP 0x200#define ERR_OPERAND 0x400#define ERR_IMME 0x800#define ERR_MOFFSET 0x1000#define ERR_ADDRESS 0x2000#define ERR_REGISTER 0x4000#define ERR_INVALD_SIZE 0x8000#define ERR_ERROR 0x10000#define ERR_CHARACTER 0x80000000static char *ops_errmsg[] = { "error: loss '('\n", "error: loss ')'\n", "error: invalid operand size cast\n", "error: illegal prefix\n", "error: loss '['\n", "error: loss ']'\n", "error: illegal base or index register\n", "error: illegal index register\n", "error: illegal scale value\n", "error: illegal displacement value\n", "error: illegal operand\n", "error: invalid immediate value\n", "error: illegal memory offset value\n", "error: illegal operand address mode\n", "error: illegal register value\n", "error: invalid operand size\n", "", "error: illegal character\n" // last};/* assemble line error */#define ERR_LABEL 0x1#define ERR_REPLABEL 0x2#define ERR_INS 0x4#define ERR_LINE 0x8static char *line_errmsg[] = { "error: error at label\n", "error: rep define label\n", "error: illegel instruction\n", "error: error at line or cannot analyse line\n" /* last */};/* analyse file error no */#define ERR_FILE 0x1#define ERR_ENTER 0x2/* generate encode error no *///#define ERR_ERROR 0x1#define PRINT_ERRMSG(errno, errmsg) \{ \ int i; \ for (i = 0; i < 32; i++) \ fprintf(stderr, (errno)&(1<<i)?(errmsg)[i]:"\0");\}#define ERR_MSG_SIZE 256/* error fuction */int mount_err_link(errno_t errno, char *err_msg[], char *err_info);char *get_err_msg_addr();void print_err();void release_err_link();#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -