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

📄 yylex.java

📁 tiger编译器的Java实现
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
						break;
					case 4:
						{    err("error ["+yytext()+"]");	return errorTok(sym.error, yytext());}
					case -6:
						break;
					case 5:
						{return intTok(sym.INT, new Integer(Integer.parseInt(yytext())));}
					case -7:
						break;
					case 6:
						{return tok(sym.COMMA);}
					case -8:
						break;
					case 7:
						{return tok(sym.LBRACE);}
					case -9:
						break;
					case 8:
						{return tok(sym.RBRACE);}
					case -10:
						break;
					case 9:
						{return tok(sym.LBRACK);}
					case -11:
						break;
					case 10:
						{return tok(sym.RBRACK);}
					case -12:
						break;
					case 11:
						{return tok(sym.COLON);}
					case -13:
						break;
					case 12:
						{return tok(sym.SEMICOLON);}
					case -14:
						break;
					case 13:
						{return tok(sym.LPAREN);}
					case -15:
						break;
					case 14:
						{return tok(sym.RPAREN);}
					case -16:
						break;
					case 15:
						{return tok(sym.DOT);}
					case -17:
						break;
					case 16:
						{return tok(sym.PLUS);}
					case -18:
						break;
					case 17:
						{return tok(sym.MINUS);}
					case -19:
						break;
					case 18:
						{return tok(sym.TIMES);}
					case -20:
						break;
					case 19:
						{return tok(sym.DIVIDE);}
					case -21:
						break;
					case 20:
						{return tok(sym.AND);}
					case -22:
						break;
					case 21:
						{return tok(sym.OR);}
					case -23:
						break;
					case 22:
						{return tok(sym.EQ);}
					case -24:
						break;
					case 23:
						{return tok(sym.LT);}
					case -25:
						break;
					case 24:
						{return tok(sym.GT);}
					case -26:
						break;
					case 25:
						{return idTok(sym.ID, yytext());}
					case -27:
						break;
					case 26:
						{    con_str="";    str_left=yychar;	yybegin(STRING);}
					case -28:
						break;
					case 28:
						{return tok(sym.ASSIGN);}
					case -29:
						break;
					case 29:
						{	    comm_depth=0;	err("Unclosed comment.");}
					case -30:
						break;
					case 30:
						{    comm_depth=1;    comm_left=yychar;	yybegin(COMMENT);}
					case -31:
						break;
					case 31:
						{return tok(sym.LE);}
					case -32:
						break;
					case 32:
						{return tok(sym.NEQ);}
					case -33:
						break;
					case 33:
						{return tok(sym.GE);}
					case -34:
						break;
					case 34:
						{return tok(sym.OF);}
					case -35:
						break;
					case 35:
						{return tok(sym.IF);}
					case -36:
						break;
					case 36:
						{return tok(sym.IN);}
					case -37:
						break;
					case 37:
						{return tok(sym.TO);}
					case -38:
						break;
					case 38:
						{return tok(sym.DO);}
					case -39:
						break;
					case 39:
						{return tok(sym.FOR);}
					case -40:
						break;
					case 40:
						{return tok(sym.LET);}
					case -41:
						break;
					case 41:
						{return tok(sym.END);}
					case -42:
						break;
					case 42:
						{return tok(sym.NIL);}
					case -43:
						break;
					case 43:
						{return tok(sym.VAR);}
					case -44:
						break;
					case 44:
						{return tok(sym.ELSE);}
					case -45:
						break;
					case 45:
						{return tok(sym.THEN);}
					case -46:
						break;
					case 46:
						{return tok(sym.TYPE);}
					case -47:
						break;
					case 47:
						{return tok(sym.WHILE);}
					case -48:
						break;
					case 48:
						{return tok(sym.BREAK);}
					case -49:
						break;
					case 49:
						{return tok(sym.ARRAY);}
					case -50:
						break;
					case 50:
						{return tok(sym.FUNCTION);}
					case -51:
						break;
					case 51:
						{    newline();	err("Unclosed string constant [" + con_str + "]");}
					case -52:
						break;
					case 52:
						{			con_str+=yytext();}
					case -53:
						break;
					case 53:
						{	yybegin(YYINITIAL);	return strTok(str_left,sym.STRING, con_str);}
					case -54:
						break;
					case 54:
						{	err("illegal escape sequence [" + yytext() + "]");}
					case -55:
						break;
					case 55:
						{	newline();	yybegin(STRINGLINES);}
					case -56:
						break;
					case 56:
						{    con_str+=transMeaning(yytext());}
					case -57:
						break;
					case 57:
						{	newline();}
					case -58:
						break;
					case 58:
						{yybegin(STRING);}
					case -59:
						break;
					case 59:
						{}
					case -60:
						break;
					case 60:
						{	if ((--comm_depth)==0)		{			yybegin(YYINITIAL);			return commTok(comm_left,sym.COMM);		}}
					case -61:
						break;
					case 61:
						{	comm_depth++;}
					case -62:
						break;
					case 62:
						{}
					case -63:
						break;
					case 63:
						{}
					case -64:
						break;
					case 64:
						{newline();}
					case -65:
						break;
					case 65:
						{    err("error ["+yytext()+"]");	return errorTok(sym.error, yytext());}
					case -66:
						break;
					case 66:
						{return idTok(sym.ID, yytext());}
					case -67:
						break;
					case 68:
						{			con_str+=yytext();}
					case -68:
						break;
					case 69:
						{	err("illegal escape sequence [" + yytext() + "]");}
					case -69:
						break;
					case 70:
						{	newline();	yybegin(STRINGLINES);}
					case -70:
						break;
					case 71:
						{	newline();}
					case -71:
						break;
					case 72:
						{}
					case -72:
						break;
					case 73:
						{newline();}
					case -73:
						break;
					case 74:
						{return idTok(sym.ID, yytext());}
					case -74:
						break;
					case 76:
						{	err("illegal escape sequence [" + yytext() + "]");}
					case -75:
						break;
					case 77:
						{}
					case -76:
						break;
					case 78:
						{return idTok(sym.ID, yytext());}
					case -77:
						break;
					case 80:
						{	err("illegal escape sequence [" + yytext() + "]");}
					case -78:
						break;
					case 81:
						{return idTok(sym.ID, yytext());}
					case -79:
						break;
					case 83:
						{return idTok(sym.ID, yytext());}
					case -80:
						break;
					case 85:
						{return idTok(sym.ID, yytext());}
					case -81:
						break;
					case 87:
						{return idTok(sym.ID, yytext());}
					case -82:
						break;
					case 89:
						{return idTok(sym.ID, yytext());}
					case -83:
						break;
					case 91:
						{return idTok(sym.ID, yytext());}
					case -84:
						break;
					case 92:
						{return idTok(sym.ID, yytext());}
					case -85:
						break;
					case 93:
						{return idTok(sym.ID, yytext());}
					case -86:
						break;
					case 94:
						{return idTok(sym.ID, yytext());}
					case -87:
						break;
					case 95:
						{return idTok(sym.ID, yytext());}
					case -88:
						break;
					case 96:
						{return idTok(sym.ID, yytext());}
					case -89:
						break;
					case 97:
						{return idTok(sym.ID, yytext());}
					case -90:
						break;
					case 98:
						{return idTok(sym.ID, yytext());}
					case -91:
						break;
					case 99:
						{return idTok(sym.ID, yytext());}
					case -92:
						break;
					case 100:
						{return idTok(sym.ID, yytext());}
					case -93:
						break;
					case 101:
						{return idTok(sym.ID, yytext());}
					case -94:
						break;
					case 102:
						{return idTok(sym.ID, yytext());}
					case -95:
						break;
					case 103:
						{return idTok(sym.ID, yytext());}
					case -96:
						break;
					case 104:
						{return idTok(sym.ID, yytext());}
					case -97:
						break;
					case 105:
						{return idTok(sym.ID, yytext());}
					case -98:
						break;
					case 106:
						{return idTok(sym.ID, yytext());}
					case -99:
						break;
					case 107:
						{return idTok(sym.ID, yytext());}
					case -100:
						break;
					case 108:
						{return idTok(sym.ID, yytext());}
					case -101:
						break;
					case 109:
						{return idTok(sym.ID, yytext());}
					case -102:
						break;
					case 110:
						{return idTok(sym.ID, yytext());}
					case -103:
						break;
					case 111:
						{return idTok(sym.ID, yytext());}
					case -104:
						break;
					case 112:
						{return idTok(sym.ID, yytext());}
					case -105:
						break;
					case 113:
						{return idTok(sym.ID, yytext());}
					case -106:
						break;
					case 114:
						{return idTok(sym.ID, yytext());}
					case -107:
						break;
					case 115:
						{return idTok(sym.ID, yytext());}
					case -108:
						break;
					case 116:
						{return idTok(sym.ID, yytext());}
					case -109:
						break;
					case 117:
						{return idTok(sym.ID, yytext());}
					case -110:
						break;
					case 118:
						{return idTok(sym.ID, yytext());}
					case -111:
						break;
					case 119:
						{return idTok(sym.ID, yytext());}
					case -112:
						break;
					case 120:
						{return idTok(sym.ID, yytext());}
					case -113:
						break;
					default:
						yy_error(YY_E_INTERNAL,false);
					case -1:
					}
					yy_initial = true;
					yy_state = yy_state_dtrans[yy_lexical_state];
					yy_next_state = YY_NO_STATE;
					yy_last_accept_state = YY_NO_STATE;
					yy_mark_start();
					yy_this_accept = yy_acpt[yy_state];
					if (YY_NOT_ACCEPT != yy_this_accept) {
						yy_last_accept_state = yy_state;
						yy_mark_end();
					}
				}
			}
		}
	}
}

⌨️ 快捷键说明

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