error.java

来自「用DFA方法写得词法分析器 和大家交流一下」· Java 代码 · 共 66 行

JAVA
66
字号
import java.io.BufferedReader;
import java.io.IOException;

/*
 * this class handle the error problem
 * author:贺静
 */
public class Error {
	/*
	 * outputText += "LINE " + lineNo + ":" + " ERROR 注释不匹配" + "\n"; author:
	 * HeJing
	 */
	public String getError(BufferedReader input, int lineNo, String token,
			int c, char charToken, int errorCon) throws IOException {
		String s = "";
		switch (errorCon) {
		case 0:
			input.readLine();
			s = "!!!ERROR: " + "LINE " + lineNo + ":" + "   注释不匹配" + "\n";
			break;
		case 1:
			if (charToken != '\n')
				input.readLine();
			s = "!!!ERROR: " + "LINE " + lineNo + ":  '" + token
					+ "'  标识符不能以 '_' 结束" + "\n";
			break;
		case 2:
			input.readLine();
			s = "!!!ERROR: " + "LINE " + lineNo + ":  '" + token
					+ "'  标识符不能以数字开头" + "\n";
			break;
		case 3:
			if (charToken != '\n')
				input.readLine();
			s = "!!!ERROR: " + "LINE " + lineNo + ":  '" + token
					+ "'   数字不能以 '.' 结束" + "\n";
			break;
		case 4:
			if (charToken == '@' & input.readLine() == null)
				s = "";
			else
				s = "!!!ERROR: " + "LINE " + lineNo + ":   invalid input "
						+ charToken + "\n";
			break;
		case 5:
			s = "!!!ERROR: " + "LINE " + lineNo + ":  " + " 注释不匹配" + "\n";
			break;
		case 6:
			if (charToken != '\n')
				input.readLine();
			s = s = "!!!ERROR: " + "LINE " + lineNo + ":  '" + token
					+ "'  数字的输入格式错误" + "\n";
		}
		if (errorCon == 0 || errorCon == 1 || errorCon == 2 || errorCon == 3
				|| errorCon == 4 || errorCon == 6) {
			lineNo++;
			Ana.token = token = " ";
			Ana.c = c = input.read();
			Ana.charToken = charToken = (char) c;
			Ana.lineNo = lineNo;
		}

		return s;
	}
}

⌨️ 快捷键说明

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