コード例 #1
0
ファイル: AS3_exParser.cs プロジェクト: Gr33z00/flashdevelop
    // $ANTLR start "bindingDecl"
    // AS3_ex.g3:1572:1: bindingDecl : L= LBRACK I= IDENTIFIER (L= LPAREN ( bindingDeclArg (C= COMMA bindingDeclArg )* )? R= RPAREN )? R= RBRACK (s= SEMI )? ;
    public AS3_exParser.bindingDecl_return bindingDecl() // throws RecognitionException [1]
    {   
        AS3_exParser.bindingDecl_return retval = new AS3_exParser.bindingDecl_return();
        retval.Start = input.LT(1);
        int bindingDecl_StartIndex = input.Index();
        object root_0 = null;

        IToken L = null;
        IToken I = null;
        IToken C = null;
        IToken R = null;
        IToken s = null;
        AS3_exParser.bindingDeclArg_return bindingDeclArg78 = null;

        AS3_exParser.bindingDeclArg_return bindingDeclArg79 = null;


        object L_tree=null;
        object I_tree=null;
        object C_tree=null;
        object R_tree=null;
        object s_tree=null;

        bool bindable=false;
        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 40) ) 
    	    {
    	    	return retval; 
    	    }
            // AS3_ex.g3:1574:2: (L= LBRACK I= IDENTIFIER (L= LPAREN ( bindingDeclArg (C= COMMA bindingDeclArg )* )? R= RPAREN )? R= RBRACK (s= SEMI )? )
            // AS3_ex.g3:1574:4: L= LBRACK I= IDENTIFIER (L= LPAREN ( bindingDeclArg (C= COMMA bindingDeclArg )* )? R= RPAREN )? R= RBRACK (s= SEMI )?
            {
            	root_0 = (object)adaptor.GetNilNode();

            	L=(IToken)Match(input,LBRACK,FOLLOW_LBRACK_in_bindingDecl6384); if (state.failed) return retval;
            	if ( state.backtracking == 0 )
            	{L_tree = (object)adaptor.Create(L);
            		adaptor.AddChild(root_0, L_tree);
            	}
            	I=(IToken)Match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_bindingDecl6394); if (state.failed) return retval;
            	if ( state.backtracking == 0 )
            	{I_tree = (object)adaptor.Create(I);
            		adaptor.AddChild(root_0, I_tree);
            	}
            	if ( state.backtracking == 0 ) 
            	{

            	  		  		bindable=mPrinter.IsDirectiveForNextElement(I.Text);
            	  		  		if (bindable)
            	  		  			mPrinter.MarkBindablePos(false); //call this to mark position *before* we send any of the tokens to the printer
            	  		  		Emit((CommonToken)L); 
            	}
            	if ( state.backtracking == 0 ) 
            	{
            	  Emit((CommonToken)I);
            	  		  	
            	}
            	// AS3_ex.g3:1583:5: (L= LPAREN ( bindingDeclArg (C= COMMA bindingDeclArg )* )? R= RPAREN )?
            	int alt45 = 2;
            	int LA45_0 = input.LA(1);

            	if ( (LA45_0 == LPAREN) )
            	{
            	    alt45 = 1;
            	}
            	switch (alt45) 
            	{
            	    case 1 :
            	        // AS3_ex.g3:1583:6: L= LPAREN ( bindingDeclArg (C= COMMA bindingDeclArg )* )? R= RPAREN
            	        {
            	        	L=(IToken)Match(input,LPAREN,FOLLOW_LPAREN_in_bindingDecl6420); if (state.failed) return retval;
            	        	if ( state.backtracking == 0 )
            	        	{L_tree = (object)adaptor.Create(L);
            	        		adaptor.AddChild(root_0, L_tree);
            	        	}
            	        	if ( state.backtracking == 0 ) 
            	        	{
            	        	  Emit((CommonToken)L);InsertWS(mPrinter.GetAdvancedSpacesInsideParens());
            	        	}
            	        	// AS3_ex.g3:1584:8: ( bindingDeclArg (C= COMMA bindingDeclArg )* )?
            	        	int alt44 = 2;
            	        	int LA44_0 = input.LA(1);

            	        	if ( ((LA44_0 >= AS && LA44_0 <= STATIC) || LA44_0 == STAR || LA44_0 == XML_AT || (LA44_0 >= SINGLE_QUOTE_LITERAL && LA44_0 <= DOUBLE_QUOTE_LITERAL) || LA44_0 == HEX_NUMBER_LITERAL || LA44_0 == DEC_NUMBER_LITERAL || LA44_0 == IDENTIFIER) )
            	        	{
            	        	    alt44 = 1;
            	        	}
            	        	switch (alt44) 
            	        	{
            	        	    case 1 :
            	        	        // AS3_ex.g3:1584:9: bindingDeclArg (C= COMMA bindingDeclArg )*
            	        	        {
            	        	        	PushFollow(FOLLOW_bindingDeclArg_in_bindingDecl6433);
            	        	        	bindingDeclArg78 = bindingDeclArg();
            	        	        	state.followingStackPointer--;
            	        	        	if (state.failed) return retval;
            	        	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, bindingDeclArg78.Tree);
            	        	        	// AS3_ex.g3:1584:24: (C= COMMA bindingDeclArg )*
            	        	        	do 
            	        	        	{
            	        	        	    int alt43 = 2;
            	        	        	    int LA43_0 = input.LA(1);

            	        	        	    if ( (LA43_0 == COMMA) )
            	        	        	    {
            	        	        	        alt43 = 1;
            	        	        	    }


            	        	        	    switch (alt43) 
            	        	        		{
            	        	        			case 1 :
            	        	        			    // AS3_ex.g3:1584:25: C= COMMA bindingDeclArg
            	        	        			    {
            	        	        			    	C=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_bindingDecl6438); if (state.failed) return retval;
            	        	        			    	if ( state.backtracking == 0 )
            	        	        			    	{C_tree = (object)adaptor.Create(C);
            	        	        			    		adaptor.AddChild(root_0, C_tree);
            	        	        			    	}
            	        	        			    	if ( state.backtracking == 0 ) 
            	        	        			    	{
            	        	        			    	  Emit((CommonToken)C);
            	        	        			    	}
            	        	        			    	PushFollow(FOLLOW_bindingDeclArg_in_bindingDecl6442);
            	        	        			    	bindingDeclArg79 = bindingDeclArg();
            	        	        			    	state.followingStackPointer--;
            	        	        			    	if (state.failed) return retval;
            	        	        			    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, bindingDeclArg79.Tree);

            	        	        			    }
            	        	        			    break;

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

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


            	        	        }
            	        	        break;

            	        	}

            	        	R=(IToken)Match(input,RPAREN,FOLLOW_RPAREN_in_bindingDecl6456); if (state.failed) return retval;
            	        	if ( state.backtracking == 0 )
            	        	{R_tree = (object)adaptor.Create(R);
            	        		adaptor.AddChild(root_0, R_tree);
            	        	}
            	        	if ( state.backtracking == 0 ) 
            	        	{
            	        	  InsertWS(mPrinter.GetAdvancedSpacesInsideParens());Emit((CommonToken)R);
            	        	}

            	        }
            	        break;

            	}

            	R=(IToken)Match(input,RBRACK,FOLLOW_RBRACK_in_bindingDecl6478); if (state.failed) return retval;
            	if ( state.backtracking == 0 )
            	{R_tree = (object)adaptor.Create(R);
            		adaptor.AddChild(root_0, R_tree);
            	}
            	if ( state.backtracking == 0 ) 
            	{
            	  Emit((CommonToken)R);
            	}
            	// AS3_ex.g3:1587:38: (s= SEMI )?
            	int alt46 = 2;
            	int LA46_0 = input.LA(1);

            	if ( (LA46_0 == SEMI) )
            	{
            	    int LA46_1 = input.LA(2);

            	    if ( (synpred120_AS3_ex()) )
            	    {
            	        alt46 = 1;
            	    }
            	}
            	switch (alt46) 
            	{
            	    case 1 :
            	        // AS3_ex.g3:1587:39: s= SEMI
            	        {
            	        	s=(IToken)Match(input,SEMI,FOLLOW_SEMI_in_bindingDecl6484); if (state.failed) return retval;
            	        	if ( state.backtracking == 0 )
            	        	{s_tree = (object)adaptor.Create(s);
            	        		adaptor.AddChild(root_0, s_tree);
            	        	}
            	        	if ( state.backtracking == 0 ) 
            	        	{
            	        	  Emit((CommonToken)s);
            	        	}

            	        }
            	        break;

            	}

            	if ( state.backtracking == 0 ) 
            	{

            	  	   	if (bindable)
            	  	   	{
            	  	   		mPrinter.SetBindableMode();
            	  	   	}
            	  	   
            	}

            }

            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, 40, bindingDecl_StartIndex); 
            }
        }
        return retval;
    }
コード例 #2
0
    // $ANTLR start "bindingDecl"
    // AS3_ex.g3:1934:1: bindingDecl : L= LBRACK (XA= XML_AT )? I= IDENTIFIER (L= LPAREN ( bindingDeclArg (C= COMMA bindingDeclArg )* )? R= RPAREN )? R= RBRACK (s= SEMI )? ;
    public AS3_exParser.bindingDecl_return bindingDecl() // throws RecognitionException [1]
    {   
        AS3_exParser.bindingDecl_return retval = new AS3_exParser.bindingDecl_return();
        retval.Start = input.LT(1);
        int bindingDecl_StartIndex = input.Index();
        object root_0 = null;

        IToken L = null;
        IToken XA = null;
        IToken I = null;
        IToken C = null;
        IToken R = null;
        IToken s = null;
        AS3_exParser.bindingDeclArg_return bindingDeclArg83 = null;

        AS3_exParser.bindingDeclArg_return bindingDeclArg84 = null;


        object L_tree=null;
        object XA_tree=null;
        object I_tree=null;
        object C_tree=null;
        object R_tree=null;
        object s_tree=null;

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

        try 
        {
            if ( (state.backtracking > 0) && AlreadyParsedRule(input, 40) ) 
            {
                return retval; 
            }
            // AS3_ex.g3:1942:2: (L= LBRACK (XA= XML_AT )? I= IDENTIFIER (L= LPAREN ( bindingDeclArg (C= COMMA bindingDeclArg )* )? R= RPAREN )? R= RBRACK (s= SEMI )? )
            // AS3_ex.g3:1943:6: L= LBRACK (XA= XML_AT )? I= IDENTIFIER (L= LPAREN ( bindingDeclArg (C= COMMA bindingDeclArg )* )? R= RPAREN )? R= RBRACK (s= SEMI )?
            {
                root_0 = (object)adaptor.GetNilNode();

                if ( state.backtracking == 0 ) 
                {
                  pushedFormat=pushFormatType(options, true);
                         pushedWrapInfo=pushWrapInfo(options, true);
                        
                }
                L=(IToken)Match(input,LBRACK,FOLLOW_LBRACK_in_bindingDecl6536); if (state.failed) return retval;
                if ( state.backtracking == 0 )
                {L_tree = (object)adaptor.Create(L);
                    adaptor.AddChild(root_0, L_tree);
                }
                // AS3_ex.g3:1947:5: (XA= XML_AT )?
                int alt44 = 2;
                int LA44_0 = input.LA(1);

                if ( (LA44_0 == XML_AT) )
                {
                    alt44 = 1;
                }
                switch (alt44) 
                {
                    case 1 :
                        // AS3_ex.g3:1947:6: XA= XML_AT
                        {
                            XA=(IToken)Match(input,XML_AT,FOLLOW_XML_AT_in_bindingDecl6547); if (state.failed) return retval;
                            if ( state.backtracking == 0 )
                            {XA_tree = (object)adaptor.Create(XA);
                                adaptor.AddChild(root_0, XA_tree);
                            }

                        }
                        break;

                }

                I=(IToken)Match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_bindingDecl6553); if (state.failed) return retval;
                if ( state.backtracking == 0 )
                {I_tree = (object)adaptor.Create(I);
                    adaptor.AddChild(root_0, I_tree);
                }
                if ( state.backtracking == 0 ) 
                {

                                bindable=mPrinter.isDirectiveForNextElement(I.Text);
                                if (bindable)
                                    mPrinter.markBindablePos(false); //call this to mark position *before* we send any of the tokens to the printer
                                emit(L); 
                }
                if ( state.backtracking == 0 ) 
                {
                  if (XA!=null)
                                    emit(XA); 
                                emit(I);
                                mPrinter.setLastBindableTagName(I.Text);
                            
                }
                // AS3_ex.g3:1958:3: (L= LPAREN ( bindingDeclArg (C= COMMA bindingDeclArg )* )? R= RPAREN )?
                int alt47 = 2;
                int LA47_0 = input.LA(1);

                if ( (LA47_0 == LPAREN) )
                {
                    alt47 = 1;
                }
                switch (alt47) 
                {
                    case 1 :
                        // AS3_ex.g3:1958:4: L= LPAREN ( bindingDeclArg (C= COMMA bindingDeclArg )* )? R= RPAREN
                        {
                            L=(IToken)Match(input,LPAREN,FOLLOW_LPAREN_in_bindingDecl6577); if (state.failed) return retval;
                            if ( state.backtracking == 0 )
                            {L_tree = (object)adaptor.Create(L);
                                adaptor.AddChild(root_0, L_tree);
                            }
                            if ( state.backtracking == 0 ) 
                            {
                              emit(L);insertWS(mPrinter.getAdvancedSpacesInsideParensInArgumentLists());
                            }
                            // AS3_ex.g3:1959:8: ( bindingDeclArg (C= COMMA bindingDeclArg )* )?
                            int alt46 = 2;
                            int LA46_0 = input.LA(1);

                            if ( ((LA46_0 >= AS && LA46_0 <= STATIC) || (LA46_0 >= PLUS && LA46_0 <= STAR) || LA46_0 == XML_AT || (LA46_0 >= SINGLE_QUOTE_LITERAL && LA46_0 <= DOUBLE_QUOTE_LITERAL) || LA46_0 == HEX_NUMBER_LITERAL || LA46_0 == DEC_NUMBER_LITERAL || LA46_0 == IDENTIFIER) )
                            {
                                alt46 = 1;
                            }
                            switch (alt46) 
                            {
                                case 1 :
                                    // AS3_ex.g3:1959:9: bindingDeclArg (C= COMMA bindingDeclArg )*
                                    {
                                        PushFollow(FOLLOW_bindingDeclArg_in_bindingDecl6589);
                                        bindingDeclArg83 = bindingDeclArg();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, bindingDeclArg83.Tree);
                                        // AS3_ex.g3:1959:24: (C= COMMA bindingDeclArg )*
                                        do 
                                        {
                                            int alt45 = 2;
                                            int LA45_0 = input.LA(1);

                                            if ( (LA45_0 == COMMA) )
                                            {
                                                alt45 = 1;
                                            }


                                            switch (alt45) 
                                            {
                                                case 1 :
                                                    // AS3_ex.g3:1959:25: C= COMMA bindingDeclArg
                                                    {
                                                        C=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_bindingDecl6594); if (state.failed) return retval;
                                                        if ( state.backtracking == 0 )
                                                        {C_tree = (object)adaptor.Create(C);
                                                            adaptor.AddChild(root_0, C_tree);
                                                        }
                                                        if ( state.backtracking == 0 ) 
                                                        {
                                                          pushedIndent=emitCommaWithSpacingAndCRs(options, C, pushedIndent, -1, ASPrettyPrinter.Break_SubType_Other);
                                                        }
                                                        PushFollow(FOLLOW_bindingDeclArg_in_bindingDecl6598);
                                                        bindingDeclArg84 = bindingDeclArg();
                                                        state.followingStackPointer--;
                                                        if (state.failed) return retval;
                                                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, bindingDeclArg84.Tree);

                                                    }
                                                    break;

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

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


                                    }
                                    break;

                            }

                            R=(IToken)Match(input,RPAREN,FOLLOW_RPAREN_in_bindingDecl6609); if (state.failed) return retval;
                            if ( state.backtracking == 0 )
                            {R_tree = (object)adaptor.Create(R);
                                adaptor.AddChild(root_0, R_tree);
                            }
                            if ( state.backtracking == 0 ) 
                            {
                              insertWS(mPrinter.getAdvancedSpacesInsideParensInArgumentLists());emit(R);
                            }

                        }
                        break;

                }

                R=(IToken)Match(input,RBRACK,FOLLOW_RBRACK_in_bindingDecl6630); if (state.failed) return retval;
                if ( state.backtracking == 0 )
                {R_tree = (object)adaptor.Create(R);
                    adaptor.AddChild(root_0, R_tree);
                }
                if ( state.backtracking == 0 ) 
                {
                  emit(R);
                }
                // AS3_ex.g3:1962:25: (s= SEMI )?
                int alt48 = 2;
                int LA48_0 = input.LA(1);

                if ( (LA48_0 == SEMI) )
                {
                    int LA48_1 = input.LA(2);

                    if ( (synpred123_AS3_ex()) )
                    {
                        alt48 = 1;
                    }
                }
                switch (alt48) 
                {
                    case 1 :
                        // AS3_ex.g3:1962:26: s= SEMI
                        {
                            s=(IToken)Match(input,SEMI,FOLLOW_SEMI_in_bindingDecl6636); if (state.failed) return retval;
                            if ( state.backtracking == 0 )
                            {s_tree = (object)adaptor.Create(s);
                                adaptor.AddChild(root_0, s_tree);
                            }
                            if ( state.backtracking == 0 ) 
                            {
                              emit(s);
                            }

                        }
                        break;

                }

                if ( state.backtracking == 0 ) 
                {

                            if (pushedWrapInfo)
                                mPrinter.popWrapContext();
                            if (pushedIndent)
                                popIndent();
                            if (pushedFormat)
                            {
                                mPrinter.popFormatMode();
                            }
                        if (bindable)
                        {
                            mPrinter.setBindableMode();
                        }
                       
                }

            }

            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, 40, bindingDecl_StartIndex); 
            }
        }
        return retval;
    }