Exemplo n.º 1
0
    // $ANTLR start "assignmentExpression"
    // AS3_ex.g3:2196:1: assignmentExpression : ( leftHandSideExpression assignmentOperator assignmentExpression | conditionalExpression );
    public AS3_exParser.assignmentExpression_return assignmentExpression() // throws RecognitionException [1]
    {   
        AS3_exParser.assignmentExpression_return retval = new AS3_exParser.assignmentExpression_return();
        retval.Start = input.LT(1);
        int assignmentExpression_StartIndex = input.Index();
        object root_0 = null;

        AS3_exParser.leftHandSideExpression_return leftHandSideExpression236 = null;

        AS3_exParser.assignmentOperator_return assignmentOperator237 = null;

        AS3_exParser.assignmentExpression_return assignmentExpression238 = null;

        AS3_exParser.conditionalExpression_return conditionalExpression239 = null;



        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 102) ) 
    	    {
    	    	return retval; 
    	    }
            // AS3_ex.g3:2197:5: ( leftHandSideExpression assignmentOperator assignmentExpression | conditionalExpression )
            int alt114 = 2;
            alt114 = dfa114.Predict(input);
            switch (alt114) 
            {
                case 1 :
                    // AS3_ex.g3:2198:7: leftHandSideExpression assignmentOperator assignmentExpression
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_leftHandSideExpression_in_assignmentExpression10224);
                    	leftHandSideExpression236 = leftHandSideExpression();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, leftHandSideExpression236.Tree);
                    	PushFollow(FOLLOW_assignmentOperator_in_assignmentExpression10227);
                    	assignmentOperator237 = assignmentOperator();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, assignmentOperator237.Tree);
                    	PushFollow(FOLLOW_assignmentExpression_in_assignmentExpression10230);
                    	assignmentExpression238 = assignmentExpression();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, assignmentExpression238.Tree);

                    }
                    break;
                case 2 :
                    // AS3_ex.g3:2199:7: conditionalExpression
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_conditionalExpression_in_assignmentExpression10238);
                    	conditionalExpression239 = conditionalExpression();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalExpression239.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, 102, assignmentExpression_StartIndex); 
            }
        }
        return retval;
    }
Exemplo n.º 2
0
    // $ANTLR start "assignmentExpression"
    // AS3_ex.g3:3010:1: assignmentExpression : ( ( leftHandSideExpression assignmentOperator )=> leftHandSideExpression assignmentOperator assignmentExpression | conditionalExpression ) ;
    public AS3_exParser.assignmentExpression_return assignmentExpression() // throws RecognitionException [1]
    {   
        AS3_exParser.assignmentExpression_return retval = new AS3_exParser.assignmentExpression_return();
        retval.Start = input.LT(1);
        int assignmentExpression_StartIndex = input.Index();
        object root_0 = null;

        AS3_exParser.leftHandSideExpression_return leftHandSideExpression247 = null;

        AS3_exParser.assignmentOperator_return assignmentOperator248 = null;

        AS3_exParser.assignmentExpression_return assignmentExpression249 = null;

        AS3_exParser.conditionalExpression_return conditionalExpression250 = null;




            WrapOptions options=mPrinter.getExpressionWrapOptions();
            bool pushedWrapInfo=false;

        try 
        {
            if ( (state.backtracking > 0) && AlreadyParsedRule(input, 102) ) 
            {
                return retval; 
            }
            // AS3_ex.g3:3015:5: ( ( ( leftHandSideExpression assignmentOperator )=> leftHandSideExpression assignmentOperator assignmentExpression | conditionalExpression ) )
            // AS3_ex.g3:3016:8: ( ( leftHandSideExpression assignmentOperator )=> leftHandSideExpression assignmentOperator assignmentExpression | conditionalExpression )
            {
                root_0 = (object)adaptor.GetNilNode();

                if ( state.backtracking == 0 ) 
                {
                  pushedWrapInfo=pushWrapInfo(options, true);
                }
                // AS3_ex.g3:3017:7: ( ( leftHandSideExpression assignmentOperator )=> leftHandSideExpression assignmentOperator assignmentExpression | conditionalExpression )
                int alt121 = 2;
                alt121 = dfa121.Predict(input);
                switch (alt121) 
                {
                    case 1 :
                        // AS3_ex.g3:3018:9: ( leftHandSideExpression assignmentOperator )=> leftHandSideExpression assignmentOperator assignmentExpression
                        {
                            PushFollow(FOLLOW_leftHandSideExpression_in_assignmentExpression11438);
                            leftHandSideExpression247 = leftHandSideExpression();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking == 0 ) adaptor.AddChild(root_0, leftHandSideExpression247.Tree);
                            PushFollow(FOLLOW_assignmentOperator_in_assignmentExpression11441);
                            assignmentOperator248 = assignmentOperator();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking == 0 ) adaptor.AddChild(root_0, assignmentOperator248.Tree);
                            PushFollow(FOLLOW_assignmentExpression_in_assignmentExpression11444);
                            assignmentExpression249 = assignmentExpression();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking == 0 ) adaptor.AddChild(root_0, assignmentExpression249.Tree);

                        }
                        break;
                    case 2 :
                        // AS3_ex.g3:3019:8: conditionalExpression
                        {
                            PushFollow(FOLLOW_conditionalExpression_in_assignmentExpression11453);
                            conditionalExpression250 = conditionalExpression();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalExpression250.Tree);

                        }
                        break;

                }

                if ( state.backtracking == 0 ) 
                {
                  if (pushedWrapInfo)
                            mPrinter.popWrapContext();
                }

            }

            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, 102, assignmentExpression_StartIndex); 
            }
        }
        return retval;
    }