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

📄 validator.java

📁 c--词法分析
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                    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 + -