📄 validator.java
字号:
expr(); _fsp--; match(input, Token.UP, null); } break; case 15 : // Validator.g:81:5: ^( NOT expr ) { match(input,NOT,FOLLOW_NOT_in_expr547); match(input, Token.DOWN, null); pushFollow(FOLLOW_expr_in_expr549); expr(); _fsp--; match(input, Token.UP, null); } break; case 16 : // Validator.g:82:5: ^( NUM INT ) { match(input,NUM,FOLLOW_NUM_in_expr561); match(input, Token.DOWN, null); match(input,INT,FOLLOW_INT_in_expr563); match(input, Token.UP, null); } break; case 17 : // Validator.g:83:5: ^( VAR ID ) { match(input,VAR,FOLLOW_VAR_in_expr575); match(input, Token.DOWN, null); ID3=(CommonTree)input.LT(1); match(input,ID,FOLLOW_ID_in_expr577); match(input, Token.UP, null); Main.symbols.test_declared(ID3.getText()); } break; case 18 : // Validator.g:84:5: ^( INDEX ID expr ) { match(input,INDEX,FOLLOW_INDEX_in_expr590); match(input, Token.DOWN, null); ID4=(CommonTree)input.LT(1); match(input,ID,FOLLOW_ID_in_expr592); pushFollow(FOLLOW_expr_in_expr594); expr(); _fsp--; match(input, Token.UP, null); Main.symbols.test_declared(ID4.getText()); } break; case 19 : // Validator.g:85:5: ^( PREFIX ^( VAR ID ) ^( NUM INT ) ) { match(input,PREFIX,FOLLOW_PREFIX_in_expr606); match(input, Token.DOWN, null); match(input,VAR,FOLLOW_VAR_in_expr609); match(input, Token.DOWN, null); ID5=(CommonTree)input.LT(1); match(input,ID,FOLLOW_ID_in_expr611); match(input, Token.UP, null); match(input,NUM,FOLLOW_NUM_in_expr615); match(input, Token.DOWN, null); match(input,INT,FOLLOW_INT_in_expr617); match(input, Token.UP, null); match(input, Token.UP, null); Main.symbols.test_declared(ID5.getText()); } break; case 20 : // Validator.g:86:5: ^( POSTFIX ^( VAR ID ) ^( NUM INT ) ) { match(input,POSTFIX,FOLLOW_POSTFIX_in_expr628); match(input, Token.DOWN, null); match(input,VAR,FOLLOW_VAR_in_expr631); match(input, Token.DOWN, null); ID6=(CommonTree)input.LT(1); match(input,ID,FOLLOW_ID_in_expr633); match(input, Token.UP, null); match(input,NUM,FOLLOW_NUM_in_expr637); match(input, Token.DOWN, null); match(input,INT,FOLLOW_INT_in_expr639); match(input, Token.UP, null); match(input, Token.UP, null); Main.symbols.test_declared(ID6.getText()); } break; case 21 : // Validator.g:87:5: call { pushFollow(FOLLOW_call_in_expr649); call(); _fsp--; } break; case 22 : // Validator.g:88:5: ^( ASSIGN ID expr ) { match(input,ASSIGN,FOLLOW_ASSIGN_in_expr661); match(input, Token.DOWN, null); ID7=(CommonTree)input.LT(1); match(input,ID,FOLLOW_ID_in_expr663); pushFollow(FOLLOW_expr_in_expr665); expr(); _fsp--; match(input, Token.UP, null); Main.symbols.test_declared(ID7.getText());Main.symbols.test_assign(ID7.getText()); } break; case 23 : // Validator.g:89:5: ^( ASSIGN ^( INDEX ID expr ) expr ) { match(input,ASSIGN,FOLLOW_ASSIGN_in_expr677); match(input, Token.DOWN, null); match(input,INDEX,FOLLOW_INDEX_in_expr680); match(input, Token.DOWN, null); ID8=(CommonTree)input.LT(1); match(input,ID,FOLLOW_ID_in_expr682); pushFollow(FOLLOW_expr_in_expr684); expr(); _fsp--; match(input, Token.UP, null); pushFollow(FOLLOW_expr_in_expr687); expr(); _fsp--; match(input, Token.UP, null); Main.symbols.test_declared(ID8.getText());Main.symbols.test_assign(ID8.getText()); } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { } return ; } // $ANTLR end expr // $ANTLR start call // Validator.g:93:1: call : ^( CALL ID ^( EXPRLIST ( expr )* ) ) ; public final void call() throws RecognitionException { CommonTree ID9=null; int arg_count=0; try { // Validator.g:97:4: ( ^( CALL ID ^( EXPRLIST ( expr )* ) ) ) // Validator.g:97:4: ^( CALL ID ^( EXPRLIST ( expr )* ) ) { match(input,CALL,FOLLOW_CALL_in_call709); match(input, Token.DOWN, null); ID9=(CommonTree)input.LT(1); match(input,ID,FOLLOW_ID_in_call711); match(input,EXPRLIST,FOLLOW_EXPRLIST_in_call714); if ( input.LA(1)==Token.DOWN ) { match(input, Token.DOWN, null); // Validator.g:97:25: ( expr )* loop9: do { int alt9=2; int LA9_0 = input.LA(1); if ( ((LA9_0>=POSTFIX && LA9_0<=PREFIX)||LA9_0==ASSIGN||(LA9_0>=CALL && LA9_0<=NEGATE)||(LA9_0>=NUM && LA9_0<=VAR)||(LA9_0>=63 && LA9_0<=77)) ) { alt9=1; } switch (alt9) { case 1 : // Validator.g:97:26: expr { pushFollow(FOLLOW_expr_in_call717); expr(); _fsp--; arg_count++; } break; default : break loop9; } } while (true); match(input, Token.UP, null); } match(input, Token.UP, null); Function fcn=Main.symbols.get_function(ID9.getText()); if(fcn.params.size()!=arg_count){ Main.print_err("Invalid number of arguments to function '"+fcn.name+"'"); } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { } return ; } // $ANTLR end call public static final BitSet FOLLOW_PROGRAM_in_program51 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_VARIABLES_in_program54 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_varDecl_in_program56 = new BitSet(new long[]{0x0000000000001808L}); public static final BitSet FOLLOW_FUNCTIONS_in_program61 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_funDecl_in_program63 = new BitSet(new long[]{0x0000000000000408L}); public static final BitSet FOLLOW_call_in_program67 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_EOF_in_program70 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_FUNCTION_in_funDecl82 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_TYPE_in_funDecl86 = new BitSet(new long[]{0x0000000040000000L}); public static final BitSet FOLLOW_ID_in_funDecl90 = new BitSet(new long[]{0x0000000002000000L}); public static final BitSet FOLLOW_PARAMATERS_in_funDecl93 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_block_in_funDecl101 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_VARDEF_in_varDecl116 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_TYPE_in_varDecl118 = new BitSet(new long[]{0x0000000040000000L}); public static final BitSet FOLLOW_ID_in_varDecl122 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_ARRDEF_in_varDecl133 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_TYPE_in_varDecl135 = new BitSet(new long[]{0x0000000040000000L}); public static final BitSet FOLLOW_ID_in_varDecl139 = new BitSet(new long[]{0x0000000080000000L}); public static final BitSet FOLLOW_INT_in_varDecl143 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_BLOCK_in_block167 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_VARIABLES_in_block170 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_varDecl_in_block172 = new BitSet(new long[]{0x0000000000001808L}); public static final BitSet FOLLOW_STMTS_in_block177 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_stmt_in_block179 = new BitSet(new long[]{0x8000007F187981C8L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_stmt195 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RETURN_in_stmt202 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_stmt204 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_READ_in_stmt213 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_stmt217 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_WRITE_in_stmt227 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_stmt229 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_WRITELN_in_stmt238 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BREAK_in_stmt246 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ifStmt_in_stmt255 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_whileStmt_in_stmt261 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_block_in_stmt267 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_NOP_in_stmt273 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_WHILE_in_whileStmt286 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_whileStmt288 = new BitSet(new long[]{0x8000007F187981C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_stmt_in_whileStmt290 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_IF_in_ifStmt303 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_EXPR_in_ifStmt306 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_ifStmt308 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_stmt_in_ifStmt311 = new BitSet(new long[]{0x8000007F187981C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_stmt_in_ifStmt313 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_set_in_expr329 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr335 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr337 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_set_in_expr347 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr353 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr355 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_67_in_expr365 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr367 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr369 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_68_in_expr380 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr382 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr384 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_70_in_expr395 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr397 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr399 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_71_in_expr410 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr412 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr414 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_73_in_expr425 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr427 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr429 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_72_in_expr440 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr442 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr444 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_69_in_expr455 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr457 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr459 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_74_in_expr470 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr472 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr474 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_75_in_expr486 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr488 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr490 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_76_in_expr502 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr504 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr506 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_77_in_expr518 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr520 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr522 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_NEGATE_in_expr534 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr536 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_NOT_in_expr547 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_expr549 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_NUM_in_expr561 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_INT_in_expr563 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_VAR_in_expr575 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_expr577 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_INDEX_in_expr590 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_expr592 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr594 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_PREFIX_in_expr606 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_VAR_in_expr609 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_expr611 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_NUM_in_expr615 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_INT_in_expr617 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_POSTFIX_in_expr628 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_VAR_in_expr631 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_expr633 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_NUM_in_expr637 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_INT_in_expr639 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_call_in_expr649 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ASSIGN_in_expr661 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_expr663 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr665 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_ASSIGN_in_expr677 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_INDEX_in_expr680 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_expr682 = new BitSet(new long[]{0x80000000187900C0L,0x0000000000003FFFL}); public static final BitSet FOLLOW_expr_in_expr684 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_expr_in_expr687 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_CALL_in_call709 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_call711 = new BitSet(new long[]{0x0000000000040000L}); public static final BitSet FOLLOW_EXPRLIST_in_call714 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_expr_in_call717 = new BitSet(new long[]{0x80000000187900C8L,0x0000000000003FFFL});}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -