📄 err.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 + -