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

📄 compilererror.h

📁 这是一个软件水平资格考试中使用的CASL汇编语言的编译器,实现文件中包括一个编译器,一个虚拟机,一个类似于Debug的调试器.
💻 H
字号:
///////////////////////////////////////////////////////////////////////
//文件功能:定义的是在编译器的编译过程中如果发现源码中出现错误时用到的一些消息和结构
//          定义
//开发人员:杨军
//开发日期:2004-5-10
//修改人员:
//修改日期:
///////////////////////////////////////////////////////////////////////
#ifndef __COMPILER_ERROR_DEF
#define __COMPILER_ERROR_DEF

//---------------源程序编译过程中出现错误的标号 begins(用于检索错误信息字符串)---------------------
#define NO_START_LABEL 0
#define INVALID_GR_NUMBER 1
#define INVALID_EA 2
#define NO_END_LABEL 3
#define INVALID_DS_DEF 4
#define INVALID_DC_DEF 5
#define INVALID_INSTRUCTION_TYPE 6
#define NO_EXEC_STATEMENT 7
//----------最后一条错误消息的ID--------------------------
#define LAST_ERRMSG_ID 7
//----------用于标识编译器未识别的错误--------------------
#define UNKNOWN_COMPILING_ERROR  LAST_ERRMSG_ID + 1
//---------------源程序编译过程中出现错误的标号 ends---------------------

//---------------标识编译器运行的状态 begins------------------------------------------
#define COMPILING_OK 0               //编译成功
#define COMPILING_WITH_ERROR 1       //编译过程中发现源程序中有错误
#define COMPILING_FAILED -1          //编译器运行出错!
#define COMPILING_WITHOUT_PARAM     -2 //运行编译器未指定参数
//---------------标识编译器运行的状态 ends ------------------------------------------

#pragma pack( push, 1)
typedef struct tagCompilingErrMsg
{
  //----出错行在源文件中的行号-----------------------------
  int iLine;
  //----错误消息的ID,用这个ID可以检索出错误消息的具体内容---
  unsigned int uiMsgID;
  //-------------默认构造函数-------------------------------
  tagCompilingErrMsg()
  {
    iLine = 0;
    uiMsgID = UNKNOWN_COMPILING_ERROR;
  }
  //-------------带参数的构造函数---------------------------
  tagCompilingErrMsg(int argLine, unsigned int argMsgID)
  {
    iLine = argLine;
    uiMsgID = argMsgID;
  }
} CompilingErrMsg;  //错误消息结构定义

#pragma pack(pop)

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -