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

📄 errorstream.java

📁 cocorj09-一个Java语言分析器
💻 JAVA
字号:
package Coco;

class ErrorStream {

	int count;  // number of errors detected

	ErrorStream() {
		count = 0;
	}

	void StoreError(int n, int line, int col, String s) {
		System.out.println("-- line " + line + " col " + col + ": " + s);
	}

	void ParsErr(int n, int line, int col) {
		String s;
		count++;
		switch (n) {
			case 0: {s = "EOF expected"; break;}
			case 1: {s = "ident expected"; break;}
			case 2: {s = "string expected"; break;}
			case 3: {s = "badstring expected"; break;}
			case 4: {s = "number expected"; break;}
			case 5: {s = "'COMPILER' expected"; break;}
			case 6: {s = "'PRODUCTIONS' expected"; break;}
			case 7: {s = "'=' expected"; break;}
			case 8: {s = "'.' expected"; break;}
			case 9: {s = "'END' expected"; break;}
			case 10: {s = "'CHARACTERS' expected"; break;}
			case 11: {s = "'TOKENS' expected"; break;}
			case 12: {s = "'NAMES' expected"; break;}
			case 13: {s = "'PRAGMAS' expected"; break;}
			case 14: {s = "'COMMENTS' expected"; break;}
			case 15: {s = "'FROM' expected"; break;}
			case 16: {s = "'TO' expected"; break;}
			case 17: {s = "'NESTED' expected"; break;}
			case 18: {s = "'IGNORE' expected"; break;}
			case 19: {s = "'CASE' expected"; break;}
			case 20: {s = "'+' expected"; break;}
			case 21: {s = "'-' expected"; break;}
			case 22: {s = "'..' expected"; break;}
			case 23: {s = "'ANY' expected"; break;}
			case 24: {s = "'CHR' expected"; break;}
			case 25: {s = "'(' expected"; break;}
			case 26: {s = "')' expected"; break;}
			case 27: {s = "'<' expected"; break;}
			case 28: {s = "'^' expected"; break;}
			case 29: {s = "'[' expected"; break;}
			case 30: {s = "']' expected"; break;}
			case 31: {s = "',' expected"; break;}
			case 32: {s = "'>' expected"; break;}
			case 33: {s = "'<.' expected"; break;}
			case 34: {s = "'.>' expected"; break;}
			case 35: {s = "'|' expected"; break;}
			case 36: {s = "'WEAK' expected"; break;}
			case 37: {s = "'{' expected"; break;}
			case 38: {s = "'}' expected"; break;}
			case 39: {s = "'SYNC' expected"; break;}
			case 40: {s = "'CONTEXT' expected"; break;}
			case 41: {s = "'(.' expected"; break;}
			case 42: {s = "'.)' expected"; break;}
			case 43: {s = "not expected"; break;}
			case 44: {s = "invalid TokenFactor"; break;}
			case 45: {s = "invalid Attribs1"; break;}
			case 46: {s = "invalid Attribs1"; break;}
			case 47: {s = "invalid Attribs"; break;}
			case 48: {s = "invalid Attribs"; break;}
			case 49: {s = "invalid Factor"; break;}
			case 50: {s = "invalid Term"; break;}
			case 51: {s = "invalid Symbol"; break;}
			case 52: {s = "invalid SimSet"; break;}
			case 53: {s = "invalid NameDecl"; break;}
			case 54: {s = "this symbol not expected in TokenDecl"; break;}
			case 55: {s = "invalid TokenDecl"; break;}
			case 56: {s = "invalid Declaration"; break;}
			case 57: {s = "invalid Declaration"; break;}
			case 58: {s = "this symbol not expected in Coco"; break;}

			default: s = "Syntax error " + n;
		}
		StoreError(n, line, col, s);
	}

	void SemErr(int n, int line, int col) {
		String s;
		count++;
		switch (n) {
			case -1: {s = "invalid character"; break;}
			// perhaps insert application specific error messages here
			default: {s = "Semantic error " + n; break;}
		}
		StoreError(n, line, col, s);
	}

	void Exception (String s) {
		System.out.println(s); System.exit(0);
	}

	void Summarize (String s) {
		switch (count) {
			case 0 : System.out.println("No errors detected"); break;
			case 1 : System.out.println("1 error detected"); break;
			default: System.out.println(count + " errors detected"); break;
		}
	}

}

⌨️ 快捷键说明

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