示例#1
0
    // $ANTLR start "relationalExpressionNoIn"
    // AS3_ex.g3:2327:1: relationalExpressionNoIn : shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* ;
    public AS3_exParser.relationalExpressionNoIn_return relationalExpressionNoIn() // throws RecognitionException [1]
    {   
        AS3_exParser.relationalExpressionNoIn_return retval = new AS3_exParser.relationalExpressionNoIn_return();
        retval.Start = input.LT(1);
        int relationalExpressionNoIn_StartIndex = input.Index();
        object root_0 = null;

        IToken g = null;
        IToken assign = null;
        IToken eq = null;
        AS3_exParser.shiftExpression_return shiftExpression287 = null;

        AS3_exParser.shiftExpression_return shiftExpression288 = null;


        object g_tree=null;
        object assign_tree=null;
        object eq_tree=null;

        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 121) ) 
    	    {
    	    	return retval; 
    	    }
            // AS3_ex.g3:2328:5: ( shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* )
            // AS3_ex.g3:2328:9: shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )*
            {
            	root_0 = (object)adaptor.GetNilNode();

            	PushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn11264);
            	shiftExpression287 = shiftExpression();
            	state.followingStackPointer--;
            	if (state.failed) return retval;
            	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, shiftExpression287.Tree);
            	// AS3_ex.g3:2329:6: ( (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )*
            	do 
            	{
            	    int alt136 = 2;
            	    int LA136_0 = input.LA(1);

            	    if ( (LA136_0 == AS || LA136_0 == INSTANCEOF || LA136_0 == IS || (LA136_0 >= LT && LA136_0 <= LTE)) )
            	    {
            	        alt136 = 1;
            	    }


            	    switch (alt136) 
            		{
            			case 1 :
            			    // AS3_ex.g3:2330:7: (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression
            			    {
            			    	// AS3_ex.g3:2330:7: (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) )
            			    	int alt135 = 2;
            			    	int LA135_0 = input.LA(1);

            			    	if ( (LA135_0 == GT) )
            			    	{
            			    	    alt135 = 1;
            			    	}
            			    	else if ( (LA135_0 == AS || LA135_0 == INSTANCEOF || LA135_0 == IS || LA135_0 == LT || LA135_0 == LTE) )
            			    	{
            			    	    alt135 = 2;
            			    	}
            			    	else 
            			    	{
            			    	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            			    	    NoViableAltException nvae_d135s0 =
            			    	        new NoViableAltException("", 135, 0, input);

            			    	    throw nvae_d135s0;
            			    	}
            			    	switch (alt135) 
            			    	{
            			    	    case 1 :
            			    	        // AS3_ex.g3:2330:9: g= GT (assign= ASSIGN )?
            			    	        {
            			    	        	g=(IToken)Match(input,GT,FOLLOW_GT_in_relationalExpressionNoIn11284); if (state.failed) return retval;
            			    	        	if ( state.backtracking == 0 )
            			    	        	{g_tree = (object)adaptor.Create(g);
            			    	        		adaptor.AddChild(root_0, g_tree);
            			    	        	}
            			    	        	// AS3_ex.g3:2330:14: (assign= ASSIGN )?
            			    	        	int alt134 = 2;
            			    	        	int LA134_0 = input.LA(1);

            			    	        	if ( (LA134_0 == ASSIGN) )
            			    	        	{
            			    	        	    alt134 = 1;
            			    	        	}
            			    	        	switch (alt134) 
            			    	        	{
            			    	        	    case 1 :
            			    	        	        // AS3_ex.g3:2330:15: assign= ASSIGN
            			    	        	        {
            			    	        	        	assign=(IToken)Match(input,ASSIGN,FOLLOW_ASSIGN_in_relationalExpressionNoIn11289); if (state.failed) return retval;
            			    	        	        	if ( state.backtracking == 0 )
            			    	        	        	{assign_tree = (object)adaptor.Create(assign);
            			    	        	        		adaptor.AddChild(root_0, assign_tree);
            			    	        	        	}

            			    	        	        }
            			    	        	        break;

            			    	        	}

            			    	        	if ( state.backtracking == 0 ) 
            			    	        	{
            			    	        	  if (assign!=null)
            			    	        	  		         {
            			    	        	  		         	g.Text = ">=";
            			    	        	  		         	g.Type = GTE;
            			    	        	  		         }
            			    	        	  		         IndentEmit((CommonToken)g);
            			    	        	  		        
            			    	        	}

            			    	        }
            			    	        break;
            			    	    case 2 :
            			    	        // AS3_ex.g3:2338:14: eq= ( LT | LTE | INSTANCEOF | IS | AS )
            			    	        {
            			    	        	eq = (IToken)input.LT(1);
            			    	        	if ( input.LA(1) == AS || input.LA(1) == INSTANCEOF || input.LA(1) == IS || input.LA(1) == LT || input.LA(1) == LTE ) 
            			    	        	{
            			    	        	    input.Consume();
            			    	        	    if ( state.backtracking == 0 ) adaptor.AddChild(root_0, (object)adaptor.Create(eq));
            			    	        	    state.errorRecovery = false;state.failed = false;
            			    	        	}
            			    	        	else 
            			    	        	{
            			    	        	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            			    	        	    MismatchedSetException mse = new MismatchedSetException(null,input);
            			    	        	    throw mse;
            			    	        	}

            			    	        	if ( state.backtracking == 0 ) 
            			    	        	{
            			    	        	  IndentEmit((CommonToken)eq);
            			    	        	}

            			    	        }
            			    	        break;

            			    	}

            			    	PushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn11358);
            			    	shiftExpression288 = shiftExpression();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return retval;
            			    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, shiftExpression288.Tree);
            			    	if ( state.backtracking == 0 ) 
            			    	{
            			    	  PopIndent();
            			    	}

            			    }
            			    break;

            			default:
            			    goto loop136;
            	    }
            	} while (true);

            	loop136:
            		;	// Stops C# compiler whining that label 'loop136' has no statements


            }

            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, 121, relationalExpressionNoIn_StartIndex); 
            }
        }
        return retval;
    }
示例#2
0
    // $ANTLR start "relationalExpressionNoIn"
    // AS3_ex.g3:3259:1: relationalExpressionNoIn : shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* ;
    public AS3_exParser.relationalExpressionNoIn_return relationalExpressionNoIn() // throws RecognitionException [1]
    {   
        AS3_exParser.relationalExpressionNoIn_return retval = new AS3_exParser.relationalExpressionNoIn_return();
        retval.Start = input.LT(1);
        int relationalExpressionNoIn_StartIndex = input.Index();
        object root_0 = null;

        IToken g = null;
        IToken assign = null;
        IToken eq = null;
        AS3_exParser.shiftExpression_return shiftExpression298 = null;

        AS3_exParser.shiftExpression_return shiftExpression299 = null;


        object g_tree=null;
        object assign_tree=null;
        object eq_tree=null;


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

        try 
        {
            if ( (state.backtracking > 0) && AlreadyParsedRule(input, 121) ) 
            {
                return retval; 
            }
            // AS3_ex.g3:3264:5: ( shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* )
            // AS3_ex.g3:3264:9: shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )*
            {
                root_0 = (object)adaptor.GetNilNode();

                if ( state.backtracking == 0 ) 
                {
                  pushedWrapInfo=pushWrapInfo(options, true);
                }
                PushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn12941);
                shiftExpression298 = shiftExpression();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking == 0 ) adaptor.AddChild(root_0, shiftExpression298.Tree);
                // AS3_ex.g3:3266:6: ( (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )*
                do 
                {
                    int alt143 = 2;
                    int LA143_0 = input.LA(1);

                    if ( (LA143_0 == AS || LA143_0 == INSTANCEOF || LA143_0 == IS || (LA143_0 >= LT && LA143_0 <= LTE)) )
                    {
                        alt143 = 1;
                    }


                    switch (alt143) 
                    {
                        case 1 :
                            // AS3_ex.g3:3267:7: (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression
                            {
                                // AS3_ex.g3:3267:7: (g= GT (assign= ASSIGN )? | eq= ( LT | LTE | INSTANCEOF | IS | AS ) )
                                int alt142 = 2;
                                int LA142_0 = input.LA(1);

                                if ( (LA142_0 == GT) )
                                {
                                    alt142 = 1;
                                }
                                else if ( (LA142_0 == AS || LA142_0 == INSTANCEOF || LA142_0 == IS || LA142_0 == LT || LA142_0 == LTE) )
                                {
                                    alt142 = 2;
                                }
                                else 
                                {
                                    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                                    NoViableAltException nvae_d142s0 =
                                        new NoViableAltException("", 142, 0, input);

                                    throw nvae_d142s0;
                                }
                                switch (alt142) 
                                {
                                    case 1 :
                                        // AS3_ex.g3:3267:9: g= GT (assign= ASSIGN )?
                                        {
                                            g=(IToken)Match(input,GT,FOLLOW_GT_in_relationalExpressionNoIn12961); if (state.failed) return retval;
                                            if ( state.backtracking == 0 )
                                            {g_tree = (object)adaptor.Create(g);
                                                adaptor.AddChild(root_0, g_tree);
                                            }
                                            // AS3_ex.g3:3267:14: (assign= ASSIGN )?
                                            int alt141 = 2;
                                            int LA141_0 = input.LA(1);

                                            if ( (LA141_0 == ASSIGN) )
                                            {
                                                alt141 = 1;
                                            }
                                            switch (alt141) 
                                            {
                                                case 1 :
                                                    // AS3_ex.g3:3267:15: assign= ASSIGN
                                                    {
                                                        assign=(IToken)Match(input,ASSIGN,FOLLOW_ASSIGN_in_relationalExpressionNoIn12966); if (state.failed) return retval;
                                                        if ( state.backtracking == 0 )
                                                        {assign_tree = (object)adaptor.Create(assign);
                                                            adaptor.AddChild(root_0, assign_tree);
                                                        }

                                                    }
                                                    break;

                                            }

                                            if ( state.backtracking == 0 ) 
                                            {
                                              if (assign!=null)
                                                             {
                                                                g.Text = ">=";
                                                                g.Type = GTE;
                                                             }
                                                             indentEmit(g, ASPrettyPrinter.Break_Arithmetic_Ops_code);
                                                            
                                            }

                                        }
                                        break;
                                    case 2 :
                                        // AS3_ex.g3:3275:14: eq= ( LT | LTE | INSTANCEOF | IS | AS )
                                        {
                                            eq = (IToken)input.LT(1);
                                            if ( input.LA(1) == AS || input.LA(1) == INSTANCEOF || input.LA(1) == IS || input.LA(1) == LT || input.LA(1) == LTE ) 
                                            {
                                                input.Consume();
                                                if ( state.backtracking == 0 ) adaptor.AddChild(root_0, (object)adaptor.Create(eq));
                                                state.errorRecovery = false;state.failed = false;
                                            }
                                            else 
                                            {
                                                if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                                                MismatchedSetException mse = new MismatchedSetException(null,input);
                                                throw mse;
                                            }

                                            if ( state.backtracking == 0 ) 
                                            {
                                              indentEmit(eq, ASPrettyPrinter.Break_Arithmetic_Ops_code);
                                            }

                                        }
                                        break;

                                }

                                PushFollow(FOLLOW_shiftExpression_in_relationalExpressionNoIn13035);
                                shiftExpression299 = shiftExpression();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking == 0 ) adaptor.AddChild(root_0, shiftExpression299.Tree);
                                if ( state.backtracking == 0 ) 
                                {
                                  popIndent();
                                }

                            }
                            break;

                        default:
                            goto loop143;
                    }
                } while (true);

                loop143:
                    ;   // Stops C# compiler whining that label 'loop143' has no statements

                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, 121, relationalExpressionNoIn_StartIndex); 
            }
        }
        return retval;
    }