Esempio n. 1
0
    // $ANTLR start "forInit"
    // AS3_ex.g3:1993:1: forInit : ( variableDeclarationNoInList | expressionNoIn );
    public AS3_exParser.forInit_return forInit() // throws RecognitionException [1]
    {   
        AS3_exParser.forInit_return retval = new AS3_exParser.forInit_return();
        retval.Start = input.LT(1);
        int forInit_StartIndex = input.Index();
        object root_0 = null;

        AS3_exParser.variableDeclarationNoInList_return variableDeclarationNoInList198 = null;

        AS3_exParser.expressionNoIn_return expressionNoIn199 = null;



        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 81) ) 
    	    {
    	    	return retval; 
    	    }
            // AS3_ex.g3:1994:5: ( variableDeclarationNoInList | expressionNoIn )
            int alt96 = 2;
            switch ( input.LA(1) ) 
            {
            case VAR:
            	{
                int LA96_1 = input.LA(2);

                if ( (LA96_1 == DOT || LA96_1 == SUB || LA96_1 == COLON || LA96_1 == XML_NS_OP) )
                {
                    alt96 = 2;
                }
                else if ( (LA96_1 == NATIVE || LA96_1 == TO || (LA96_1 >= EACH && LA96_1 <= NAMESPACE) || (LA96_1 >= DYNAMIC && LA96_1 <= STATIC) || LA96_1 == IDENTIFIER) )
                {
                    alt96 = 1;
                }
                else 
                {
                    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    NoViableAltException nvae_d96s1 =
                        new NoViableAltException("", 96, 1, input);

                    throw nvae_d96s1;
                }
                }
                break;
            case IDENTIFIER:
            	{
                int LA96_2 = input.LA(2);

                if ( (synpred209_AS3_ex()) )
                {
                    alt96 = 1;
                }
                else if ( (true) )
                {
                    alt96 = 2;
                }
                else 
                {
                    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    NoViableAltException nvae_d96s2 =
                        new NoViableAltException("", 96, 2, input);

                    throw nvae_d96s2;
                }
                }
                break;
            case NATIVE:
            case TO:
            case EACH:
            case GET:
            case SET:
            case NAMESPACE:
            case DYNAMIC:
            case FINAL:
            case OVERRIDE:
            case STATIC:
            	{
                int LA96_3 = input.LA(2);

                if ( (synpred209_AS3_ex()) )
                {
                    alt96 = 1;
                }
                else if ( (true) )
                {
                    alt96 = 2;
                }
                else 
                {
                    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    NoViableAltException nvae_d96s3 =
                        new NoViableAltException("", 96, 3, input);

                    throw nvae_d96s3;
                }
                }
                break;
            case AS:
            case BREAK:
            case CASE:
            case CATCH:
            case CLASS:
            case CONST:
            case CONTINUE:
            case DEFAULT:
            case DELETE:
            case DO:
            case ELSE:
            case EXTENDS:
            case FALSE:
            case FINALLY:
            case FOR:
            case FUNCTION:
            case IF:
            case IMPLEMENTS:
            case IMPORT:
            case IN:
            case INSTANCEOF:
            case INTERFACE:
            case INTERNAL:
            case IS:
            case NEW:
            case NULL:
            case PACKAGE:
            case PRIVATE:
            case PROTECTED:
            case PUBLIC:
            case RETURN:
            case SUPER:
            case SWITCH:
            case THIS:
            case THROW:
            case TRUE:
            case TRY:
            case TYPEOF:
            case USE:
            case VOID:
            case WHILE:
            case WITH:
            case INCLUDE:
            case LCURLY:
            case LPAREN:
            case LBRACK:
            case LT:
            case PLUS:
            case SUB:
            case STAR:
            case INC:
            case DEC:
            case NOT:
            case INV:
            case XML_AT:
            case XML_LS_STD:
            case SINGLE_QUOTE_LITERAL:
            case DOUBLE_QUOTE_LITERAL:
            case REGULAR_EXPR_LITERAL:
            case HEX_NUMBER_LITERAL:
            case DEC_NUMBER_LITERAL:
            case XML_COMMENT:
            case XML_CDATA:
            case XML_PI:
            	{
                alt96 = 2;
                }
                break;
            	default:
            	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            	    NoViableAltException nvae_d96s0 =
            	        new NoViableAltException("", 96, 0, input);

            	    throw nvae_d96s0;
            }

            switch (alt96) 
            {
                case 1 :
                    // AS3_ex.g3:1994:9: variableDeclarationNoInList
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_variableDeclarationNoInList_in_forInit9131);
                    	variableDeclarationNoInList198 = variableDeclarationNoInList();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, variableDeclarationNoInList198.Tree);

                    }
                    break;
                case 2 :
                    // AS3_ex.g3:1995:9: expressionNoIn
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_expressionNoIn_in_forInit9141);
                    	expressionNoIn199 = expressionNoIn();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, expressionNoIn199.Tree);

                    }
                    break;

            }
            retval.Stop = input.LT(-1);

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
            if ( state.backtracking > 0 ) 
            {
            	Memoize(input, 81, forInit_StartIndex); 
            }
        }
        return retval;
    }
Esempio n. 2
0
    // $ANTLR start "forInit"
    // AS3_ex.g3:2636:1: forInit : (V= VAR variableDeclarationNoInList | expressionNoIn );
    public AS3_exParser.forInit_return forInit() // throws RecognitionException [1]
    {   
        AS3_exParser.forInit_return retval = new AS3_exParser.forInit_return();
        retval.Start = input.LT(1);
        int forInit_StartIndex = input.Index();
        object root_0 = null;

        IToken V = null;
        AS3_exParser.variableDeclarationNoInList_return variableDeclarationNoInList209 = null;

        AS3_exParser.expressionNoIn_return expressionNoIn210 = null;


        object V_tree=null;

        try 
        {
            if ( (state.backtracking > 0) && AlreadyParsedRule(input, 81) ) 
            {
                return retval; 
            }
            // AS3_ex.g3:2637:5: (V= VAR variableDeclarationNoInList | expressionNoIn )
            int alt103 = 2;
            int LA103_0 = input.LA(1);

            if ( (LA103_0 == VAR) )
            {
                int LA103_1 = input.LA(2);

                if ( (LA103_1 == DOT || LA103_1 == SUB || LA103_1 == COLON || LA103_1 == XML_NS_OP) )
                {
                    alt103 = 2;
                }
                else if ( (LA103_1 == NATIVE || LA103_1 == TO || (LA103_1 >= EACH && LA103_1 <= NAMESPACE) || (LA103_1 >= DYNAMIC && LA103_1 <= STATIC) || LA103_1 == IDENTIFIER) )
                {
                    alt103 = 1;
                }
                else 
                {
                    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    NoViableAltException nvae_d103s1 =
                        new NoViableAltException("", 103, 1, input);

                    throw nvae_d103s1;
                }
            }
            else if ( ((LA103_0 >= AS && LA103_0 <= USE) || (LA103_0 >= VOID && LA103_0 <= STATIC) || LA103_0 == LCURLY || LA103_0 == LPAREN || LA103_0 == LBRACK || LA103_0 == LT || (LA103_0 >= PLUS && LA103_0 <= STAR) || (LA103_0 >= INC && LA103_0 <= DEC) || (LA103_0 >= NOT && LA103_0 <= INV) || (LA103_0 >= XML_AT && LA103_0 <= XML_LS_STD) || (LA103_0 >= SINGLE_QUOTE_LITERAL && LA103_0 <= DOUBLE_QUOTE_LITERAL) || LA103_0 == REGULAR_EXPR_LITERAL || LA103_0 == HEX_NUMBER_LITERAL || LA103_0 == DEC_NUMBER_LITERAL || LA103_0 == IDENTIFIER || (LA103_0 >= XML_COMMENT && LA103_0 <= XML_PI)) )
            {
                alt103 = 2;
            }
            else 
            {
                if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                NoViableAltException nvae_d103s0 =
                    new NoViableAltException("", 103, 0, input);

                throw nvae_d103s0;
            }
            switch (alt103) 
            {
                case 1 :
                    // AS3_ex.g3:2637:9: V= VAR variableDeclarationNoInList
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        V=(IToken)Match(input,VAR,FOLLOW_VAR_in_forInit9958); if (state.failed) return retval;
                        if ( state.backtracking == 0 )
                        {V_tree = (object)adaptor.Create(V);
                            adaptor.AddChild(root_0, V_tree);
                        }
                        if ( state.backtracking == 0 ) 
                        {
                          emit(V);
                        }
                        PushFollow(FOLLOW_variableDeclarationNoInList_in_forInit9961);
                        variableDeclarationNoInList209 = variableDeclarationNoInList();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, variableDeclarationNoInList209.Tree);

                    }
                    break;
                case 2 :
                    // AS3_ex.g3:2638:9: expressionNoIn
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_expressionNoIn_in_forInit9971);
                        expressionNoIn210 = expressionNoIn();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, expressionNoIn210.Tree);

                    }
                    break;

            }
            retval.Stop = input.LT(-1);

            if ( state.backtracking==0 )
            {   retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
        {
            ReportError(re);
            Recover(input,re);
        // Conversion of the second argument necessary, but harmless
        retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
        {
            if ( state.backtracking > 0 ) 
            {
                Memoize(input, 81, forInit_StartIndex); 
            }
        }
        return retval;
    }