?? 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 + -