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

📄 err.java

📁 完成编译器的基本功能,并且有界面,简单好用
💻 JAVA
字号:
package compiler.pl0;

import compiler.Frame.MainFrame;

/**
 * 错误1: 把 = 写成了 :=
 * 错误2: 常量说明 = 后应是数字
 * 错误3: 常量说明标识后应是 =
 * 错误4: procedure后应为标识符
 * 错误5: 漏掉了逗号或者分号
 * 错误9: 缺少 .
 * 错误10: 缺少分号
 * 错误11: 过程未找到或标识符未声明或变量未找到
 * 错误13: 变量后跟符应为:=
 * 错误15: call后标识符就为过程
 * 错误16: 缺少then
 * 错误17: 缺少end或分号
 * 错误18: 缺少do
 * 错误20: 不能识别的符号
 * 错误21: 不能为过程
 * 错误22: 缺少右括号
 * 错误24: 运算符或左括号后就为数字或变量名
 * 错误30: 整型数据超过最大倍数
 * 错误31: 数字过大溢出
 * 错误32: read()中的标识符不是变量或超过最大层次
 * 错误33: 格式错误,应是右括号
 * 错误34: 格式错误,应是左括号
 * 错误35: read(0中应是声明过的变量名
 */

/**
 *  这个类只是包含了报错函数以及错误计数器。
 */
public class Err {
      /**
       * 错误计数器,编译过程中一共有多少个错误
       */
      public static int err = 0;
      String ss = "";

      public Err() {
      }

      /**
       * 报错函数
       * @param errcode 错误码
       */
      public String report(int errcode) {

            if (errcode == 1) {
                  ss = "把 = 写成了 :=";
            }
            else if (errcode == 2) {
                  ss = "常量说明 = 后应是数字";
            }
            else if (errcode == 3) {
                  ss = "常量说明标识后应是 =";
            }
            else if (errcode == 4) {
                  ss = "procedure后应为标识符";
            }
            else if (errcode == 5) {
                  ss = "漏掉了逗号或者分号";
            }
            else if (errcode == 9) {
                  ss = "缺少 .";
            }
            else if (errcode == 10) {
                  ss = "缺少分号";
            }
            else if (errcode == 11) {
                  ss = "过程未找到或标识符未声明或变量未找到";
            }
            else if (errcode == 15) {
                  ss = "call后标识符就为过程";
            }
            else if (errcode == 16) {
                  ss = "缺少then";
            }
            else if (errcode == 17) {
                  ss = "缺少end或分号";
            }
            else if (errcode == 18) {
                  ss = "缺少do";
            }
            else if (errcode == 20) {
                  ss = "不能识别的符号";
            }
            else if (errcode == 21) {
                  ss = "不能为过程";
            }
            else if (errcode == 22) {
                  ss = "缺少右括号";
            }
            else if (errcode == 30) {
                  ss = "整型数据超过最大位数";
            }
            else if (errcode == 31) {
                  ss = "数字过大溢出";
            }

            else if (errcode == 32) {
                  ss = "read()中的标识符不是变量或超过最大层次";
            }
            else if (errcode == 33) {
                  ss = "格式错误,应是右括号";
            }
            else if (errcode == 34) {
                  ss = "格式错误,应是左括号";
            }
            else if (errcode == 35) {
                  ss = "read()中应是声明过的变量名";
            }
            else {
                  ss = "后跟符号不正确   " + errcode;
            }
            PL0.fa1.println("错误:" + errcode);
            err++;

            return ss;
      }
}

⌨️ 快捷键说明

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