Exemplo n.º 1
0
    // $ANTLR start "propertyDeclaration"
    // AS3_ex.g3:1680:1: propertyDeclaration : ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective ) ;
    public AS3_exParser.propertyDeclaration_return propertyDeclaration() // throws RecognitionException [1]
    {   
        AS3_exParser.propertyDeclaration_return retval = new AS3_exParser.propertyDeclaration_return();
        retval.Start = input.LT(1);
        int propertyDeclaration_StartIndex = input.Index();
        object root_0 = null;

        AS3_exParser.conditionalDirAndBindingDecls_return conditionalDirAndBindingDecls108 = null;

        AS3_exParser.memberModifiers_return memberModifiers109 = null;

        AS3_exParser.variableStatement_return variableStatement110 = null;

        AS3_exParser.constantVarStatement_return constantVarStatement111 = null;

        AS3_exParser.namespaceDirective_return namespaceDirective112 = null;



        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 50) ) 
    	    {
    	    	return retval; 
    	    }
            // AS3_ex.g3:1681:2: ( ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective ) )
            // AS3_ex.g3:1681:7: ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	if ( state.backtracking == 0 ) 
            	{
            	  InsertLines(mPrinter.GetBlankLinesBeforeProperties());
            	}
            	// AS3_ex.g3:1681:64: ( conditionalDirAndBindingDecls )?
            	int alt61 = 2;
            	switch ( input.LA(1) ) 
            	{
            	    case IDENTIFIER:
            	    	{
            	        int LA61_1 = input.LA(2);

            	        if ( (LA61_1 == XML_NS_OP) )
            	        {
            	            alt61 = 1;
            	        }
            	        }
            	        break;
            	    case NATIVE:
            	    case DYNAMIC:
            	    case FINAL:
            	    case OVERRIDE:
            	    case STATIC:
            	    	{
            	        int LA61_2 = input.LA(2);

            	        if ( (LA61_2 == XML_NS_OP) )
            	        {
            	            alt61 = 1;
            	        }
            	        }
            	        break;
            	    case NAMESPACE:
            	    	{
            	        int LA61_3 = input.LA(2);

            	        if ( (LA61_3 == XML_NS_OP) )
            	        {
            	            alt61 = 1;
            	        }
            	        }
            	        break;
            	    case TO:
            	    case EACH:
            	    case GET:
            	    case SET:
            	    	{
            	        alt61 = 1;
            	        }
            	        break;
            	}

            	switch (alt61) 
            	{
            	    case 1 :
            	        // AS3_ex.g3:1681:65: conditionalDirAndBindingDecls
            	        {
            	        	PushFollow(FOLLOW_conditionalDirAndBindingDecls_in_propertyDeclaration6973);
            	        	conditionalDirAndBindingDecls108 = conditionalDirAndBindingDecls();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return retval;
            	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalDirAndBindingDecls108.Tree);

            	        }
            	        break;

            	}

            	if ( state.backtracking == 0 ) 
            	{
            	  InsertCR(false);
            	}
            	if ( state.backtracking == 0 ) 
            	{
            	  PushLazyIndent();
            	}
            	// AS3_ex.g3:1681:135: ( memberModifiers )?
            	int alt62 = 2;
            	int LA62_0 = input.LA(1);

            	if ( (LA62_0 == IDENTIFIER) )
            	{
            	    int LA62_1 = input.LA(2);

            	    if ( (synpred142_AS3_ex()) )
            	    {
            	        alt62 = 1;
            	    }
            	}
            	else if ( (LA62_0 == INTERNAL || LA62_0 == NATIVE || (LA62_0 >= PRIVATE && LA62_0 <= PUBLIC) || (LA62_0 >= DYNAMIC && LA62_0 <= STATIC)) )
            	{
            	    alt62 = 1;
            	}
            	switch (alt62) 
            	{
            	    case 1 :
            	        // AS3_ex.g3:0:0: memberModifiers
            	        {
            	        	PushFollow(FOLLOW_memberModifiers_in_propertyDeclaration6980);
            	        	memberModifiers109 = memberModifiers();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return retval;
            	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, memberModifiers109.Tree);

            	        }
            	        break;

            	}

            	// AS3_ex.g3:1681:152: ( variableStatement | constantVarStatement | namespaceDirective )
            	int alt63 = 3;
            	switch ( input.LA(1) ) 
            	{
            	case VAR:
            	case IDENTIFIER:
            		{
            	    alt63 = 1;
            	    }
            	    break;
            	case CONST:
            		{
            	    alt63 = 2;
            	    }
            	    break;
            	case NAMESPACE:
            		{
            	    alt63 = 3;
            	    }
            	    break;
            		default:
            		    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            		    NoViableAltException nvae_d63s0 =
            		        new NoViableAltException("", 63, 0, input);

            		    throw nvae_d63s0;
            	}

            	switch (alt63) 
            	{
            	    case 1 :
            	        // AS3_ex.g3:1681:153: variableStatement
            	        {
            	        	PushFollow(FOLLOW_variableStatement_in_propertyDeclaration6984);
            	        	variableStatement110 = variableStatement();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return retval;
            	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, variableStatement110.Tree);

            	        }
            	        break;
            	    case 2 :
            	        // AS3_ex.g3:1681:173: constantVarStatement
            	        {
            	        	PushFollow(FOLLOW_constantVarStatement_in_propertyDeclaration6988);
            	        	constantVarStatement111 = constantVarStatement();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return retval;
            	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, constantVarStatement111.Tree);

            	        }
            	        break;
            	    case 3 :
            	        // AS3_ex.g3:1681:196: namespaceDirective
            	        {
            	        	PushFollow(FOLLOW_namespaceDirective_in_propertyDeclaration6992);
            	        	namespaceDirective112 = namespaceDirective();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return retval;
            	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, namespaceDirective112.Tree);

            	        }
            	        break;

            	}

            	if ( state.backtracking == 0 ) 
            	{
            	  PopIndent();
            	}

            }

            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, 50, propertyDeclaration_StartIndex); 
            }
        }
        return retval;
    }
Exemplo n.º 2
0
    // $ANTLR start "propertyDeclaration"
    // AS3_ex.g3:2134:1: propertyDeclaration : ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective ) ;
    public AS3_exParser.propertyDeclaration_return propertyDeclaration() // throws RecognitionException [1]
    {   
        AS3_exParser.propertyDeclaration_return retval = new AS3_exParser.propertyDeclaration_return();
        retval.Start = input.LT(1);
        int propertyDeclaration_StartIndex = input.Index();
        object root_0 = null;

        AS3_exParser.conditionalDirAndBindingDecls_return conditionalDirAndBindingDecls119 = null;

        AS3_exParser.memberModifiers_return memberModifiers120 = null;

        AS3_exParser.variableStatement_return variableStatement121 = null;

        AS3_exParser.constantVarStatement_return constantVarStatement122 = null;

        AS3_exParser.namespaceDirective_return namespaceDirective123 = null;



        try 
        {
            if ( (state.backtracking > 0) && AlreadyParsedRule(input, 50) ) 
            {
                return retval; 
            }
            // AS3_ex.g3:2135:2: ( ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective ) )
            // AS3_ex.g3:2135:7: ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective )
            {
                root_0 = (object)adaptor.GetNilNode();

                if ( state.backtracking == 0 ) 
                {
                  insertLines(mPrinter.getBlankLinesBeforeProperties());mPrinter.setBindingContext(ASPrettyPrinter.BindingContext_Property);
                }
                // AS3_ex.g3:2135:132: ( conditionalDirAndBindingDecls )?
                int alt67 = 2;
                switch ( input.LA(1) ) 
                {
                    case IDENTIFIER:
                        {
                        int LA67_1 = input.LA(2);

                        if ( (LA67_1 == XML_NS_OP) )
                        {
                            alt67 = 1;
                        }
                        }
                        break;
                    case NATIVE:
                    case DYNAMIC:
                    case FINAL:
                    case OVERRIDE:
                    case STATIC:
                        {
                        int LA67_2 = input.LA(2);

                        if ( (LA67_2 == XML_NS_OP) )
                        {
                            alt67 = 1;
                        }
                        }
                        break;
                    case NAMESPACE:
                        {
                        int LA67_3 = input.LA(2);

                        if ( (LA67_3 == XML_NS_OP) )
                        {
                            alt67 = 1;
                        }
                        }
                        break;
                    case TO:
                    case EACH:
                    case GET:
                    case SET:
                        {
                        alt67 = 1;
                        }
                        break;
                }

                switch (alt67) 
                {
                    case 1 :
                        // AS3_ex.g3:2135:133: conditionalDirAndBindingDecls
                        {
                            PushFollow(FOLLOW_conditionalDirAndBindingDecls_in_propertyDeclaration7406);
                            conditionalDirAndBindingDecls119 = conditionalDirAndBindingDecls();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalDirAndBindingDecls119.Tree);

                        }
                        break;

                }

                if ( state.backtracking == 0 ) 
                {
                  insertCR(false);
                }
                if ( state.backtracking == 0 ) 
                {
                  pushLazyIndent();
                }
                // AS3_ex.g3:2135:203: ( memberModifiers )?
                int alt68 = 2;
                int LA68_0 = input.LA(1);

                if ( (LA68_0 == IDENTIFIER) )
                {
                    int LA68_1 = input.LA(2);

                    if ( (synpred152_AS3_ex()) )
                    {
                        alt68 = 1;
                    }
                }
                else if ( (LA68_0 == INTERNAL || LA68_0 == NATIVE || (LA68_0 >= PRIVATE && LA68_0 <= PUBLIC) || (LA68_0 >= DYNAMIC && LA68_0 <= STATIC)) )
                {
                    alt68 = 1;
                }
                switch (alt68) 
                {
                    case 1 :
                        // AS3_ex.g3:0:0: memberModifiers
                        {
                            PushFollow(FOLLOW_memberModifiers_in_propertyDeclaration7413);
                            memberModifiers120 = memberModifiers();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking == 0 ) adaptor.AddChild(root_0, memberModifiers120.Tree);

                        }
                        break;

                }

                // AS3_ex.g3:2135:220: ( variableStatement | constantVarStatement | namespaceDirective )
                int alt69 = 3;
                switch ( input.LA(1) ) 
                {
                case VAR:
                case IDENTIFIER:
                    {
                    alt69 = 1;
                    }
                    break;
                case CONST:
                    {
                    alt69 = 2;
                    }
                    break;
                case NAMESPACE:
                    {
                    alt69 = 3;
                    }
                    break;
                    default:
                        if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                        NoViableAltException nvae_d69s0 =
                            new NoViableAltException("", 69, 0, input);

                        throw nvae_d69s0;
                }

                switch (alt69) 
                {
                    case 1 :
                        // AS3_ex.g3:2135:221: variableStatement
                        {
                            PushFollow(FOLLOW_variableStatement_in_propertyDeclaration7417);
                            variableStatement121 = variableStatement();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking == 0 ) adaptor.AddChild(root_0, variableStatement121.Tree);

                        }
                        break;
                    case 2 :
                        // AS3_ex.g3:2135:241: constantVarStatement
                        {
                            PushFollow(FOLLOW_constantVarStatement_in_propertyDeclaration7421);
                            constantVarStatement122 = constantVarStatement();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking == 0 ) adaptor.AddChild(root_0, constantVarStatement122.Tree);

                        }
                        break;
                    case 3 :
                        // AS3_ex.g3:2135:264: namespaceDirective
                        {
                            PushFollow(FOLLOW_namespaceDirective_in_propertyDeclaration7425);
                            namespaceDirective123 = namespaceDirective();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking == 0 ) adaptor.AddChild(root_0, namespaceDirective123.Tree);

                        }
                        break;

                }

                if ( state.backtracking == 0 ) 
                {
                  popIndent();
                }
                if ( state.backtracking == 0 ) 
                {
                  mPrinter.adjustLastLineIndent();
                }

            }

            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, 50, propertyDeclaration_StartIndex); 
            }
        }
        return retval;
    }