📄 scanner.java
字号:
} while (true) { if (yy_initial && yy_at_bol) yy_lookahead = YY_BOL; else yy_lookahead = yy_advance(); yy_next_state = YY_F; yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]]; if (YY_EOF == yy_lookahead && true == yy_initial) { return new Symbol(sym.EOF); } if (YY_F != yy_next_state) { yy_state = yy_next_state; yy_initial = false; yy_this_accept = yy_acpt[yy_state]; if (YY_NOT_ACCEPT != yy_this_accept) { yy_last_accept_state = yy_state; yy_mark_end(); } } else { if (YY_NO_STATE == yy_last_accept_state) { throw (new Error("Lexical Error: Unmatched Input.")); } else { yy_anchor = yy_acpt[yy_last_accept_state]; if (0 != (YY_END & yy_anchor)) { yy_move_end(); } yy_to_mark(); switch (yy_last_accept_state) { case 1: case -2: break; case 2: { } case -3: break; case 3: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.ASSIGN, (yyline+1),yychar, new String("=")));} case -4: break; case 4: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.COMMA, (yyline+1),yychar, new String(","))); } case -5: break; case 5: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.SEMI, (yyline+1),yychar, new String(";"))); } case -6: break; case 6: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.LPAREN, (yyline+1),yychar, new String("("))); } case -7: break; case 7: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.RPAREN, (yyline+1),yychar, new String(")"))); } case -8: break; case 8: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.LSQUARE, (yyline+1),yychar, new String("["))); } case -9: break; case 9: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.RSQUARE, (yyline+1),yychar, new String("]"))); } case -10: break; case 10: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.LCURLY, (yyline+1),yychar, new String("{"))); } case -11: break; case 11: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.RCURLY, (yyline+1),yychar, new String("}"))); } case -12: break; case 12: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.LESSTHAN, (yyline+1),yychar, new String("<"))); } case -13: break; case 13: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.GREATERTHAN,(yyline+1),yychar, new String(">"))); } case -14: break; case 14: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.PLUS, (yyline+1),yychar, new String("+"))); } case -15: break; case 15: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.MINUS, (yyline+1),yychar, new String("-"))); } case -16: break; case 16: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.MULT, (yyline+1),yychar, new String("*"))); } case -17: break; case 17: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.DIVIDE, (yyline+1),yychar, new String("/"))); } case -18: break; case 18: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.MOD, (yyline+1),yychar, new String("%"))); } case -19: break; case 19: { System.err.println(parser.infile + ": "+ (yyline+1) +": Lexical error: Illegal character: '"+yytext()); ClassProgram.numOfError++; ClassProgram.semanticCheck=false; } case -20: break; case 20: { if (debug) System.out.println("Token (Indentifier) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.ID,(yyline+1),yychar, new String(yytext())));} case -21: break; case 21: { if (debug) System.out.println("Token (Integer Literal) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.INTLIT,(yyline+1),yychar, new String(yytext())));} case -22: break; case 22: { System.err.println(parser.infile + ": "+ (yyline+1) +": Lexical error: Unclosed char literal: '"+yytext()); ClassProgram.numOfError++; ClassProgram.semanticCheck=false;} case -23: break; case 23: { System.err.println(parser.infile + ": "+ (yyline+1) +": Lexical error: Unclosed string literal: '"+yytext()); ClassProgram.numOfError++; ClassProgram.semanticCheck=false; } case -24: break; case 24: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.EQUAL, (yyline+1),yychar, new String("=="))); } case -25: break; case 25: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.LTOE, (yyline+1),yychar, new String("<="))); } case -26: break; case 26: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.SHIFTLEFT, (yyline+1),yychar, new String("<<"))); } case -27: break; case 27: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.GTOE, (yyline+1),yychar, new String(">="))); } case -28: break; case 28: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.SHIFTRIGHT, (yyline+1),yychar, new String(">>"))); } case -29: break; case 29: { //if (debug) System.out.println("Token (Comment line) at line ("+(yyline+1)+"): "+yytext());} case -30: break; case 30: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.NOTEQUAL, (yyline+1),yychar, new String("!="))); } case -31: break; case 31: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.AND, (yyline+1),yychar, new String("&&"))); } case -32: break; case 32: { if (debug) System.out.println("Token at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.OR, (yyline+1),yychar, new String("||"))); } case -33: break; case 33: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.IF, (yyline+1),yychar, new String(yytext()))); } case -34: break; case 34: { System.err.println(parser.infile + ": "+ (yyline+1) +": Lexical error: Illegal identifier: '"+yytext()); ClassProgram.numOfError++; ClassProgram.semanticCheck=false;} case -35: break; case 35: { String str = yytext().substring(1,yytext().length() - 1); if (debug) System.out.println("Token (String Literal) at line ("+(yyline+1)+"): "+str); lineno = yyline + 1; return (new Symbol(sym.STRINGLIT,(yyline+1),yychar, new String(str)));} case -36: break; case 36: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.NEW, (yyline+1),yychar, new String(yytext()))); } case -37: break; case 37: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.FOR, (yyline+1),yychar, new String(yytext()))); } case -38: break; case 38: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.INT, (yyline+1),yychar, new String(yytext()))); } case -39: break; case 39: { String str = yytext().substring(1,yytext().length() - 1); if (debug) System.out.println("Token (Char Literal) at line ("+(yyline+1)+"): "+str); lineno = yyline + 1; return (new Symbol(sym.CHARLIT,(yyline+1),yychar, new Character(str.charAt(0))));} case -40: break; case 40: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.ELSE, (yyline+1),yychar, new String(yytext()))); } case -41: break; case 41: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.NULL, (yyline+1),yychar, new String(yytext()))); } case -42: break; case 42: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.BOOLTRUE,(yyline+1),yychar,new Boolean(yytext()))); } case -43: break; case 43: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.THIS, (yyline+1),yychar, new String(yytext()))); } case -44: break; case 44: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.VOID, (yyline+1),yychar, new String(yytext()))); } case -45: break; case 45: { System.err.println(parser.infile + ": "+ (yyline+1) +": Lexical error: Double quotation marks needed for string: '"+yytext()); ClassProgram.numOfError++; ClassProgram.semanticCheck=false; } case -46: break; case 46: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.CLASS, (yyline+1),yychar, new String(yytext()))); } case -47: break; case 47: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.BOOLFALSE,(yyline+1),yychar, new Boolean(yytext()))); } case -48: break; case 48: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.WHILE, (yyline+1),yychar, new String(yytext()))); } case -49: break; case 49: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.RETURN, (yyline+1),yychar, new String(yytext()))); } case -50: break; case 50: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.BOOLEAN, (yyline+1),yychar, new String(yytext()))); } case -51: break; case 51: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.EXTENDS, (yyline+1),yychar, new String(yytext()))); } case -52: break; case 52: { if (debug) System.out.println("Token (Keyword) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.CALLOUT, (yyline+1),yychar, new String(yytext()))); } case -53: break; case 54: { System.err.println(parser.infile + ": "+ (yyline+1) +": Lexical error: Illegal character: '"+yytext()); ClassProgram.numOfError++; ClassProgram.semanticCheck=false; } case -54: break; case 55: { if (debug) System.out.println("Token (Indentifier) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.ID,(yyline+1),yychar, new String(yytext())));} case -55: break; case 56: { if (debug) System.out.println("Token (Integer Literal) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.INTLIT,(yyline+1),yychar, new String(yytext())));} case -56: break; case 57: { System.err.println(parser.infile + ": "+ (yyline+1) +": Lexical error: Unclosed char literal: '"+yytext()); ClassProgram.numOfError++; ClassProgram.semanticCheck=false;} case -57: break; case 58: { System.err.println(parser.infile + ": "+ (yyline+1) +": Lexical error: Illegal identifier: '"+yytext()); ClassProgram.numOfError++; ClassProgram.semanticCheck=false;} case -58: break; case 60: { System.err.println(parser.infile + ": "+ (yyline+1) +": Lexical error: Illegal character: '"+yytext()); ClassProgram.numOfError++; ClassProgram.semanticCheck=false; } case -59: break; case 61: { if (debug) System.out.println("Token (Indentifier) at line ("+(yyline+1)+"): "+yytext()); lineno = yyline + 1; return (new Symbol(sym.ID,(yyline+1),yychar, new String(yytext())));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -