示例#1
0
    // $ANTLR start "packageElement"
    // AS3_ex.g3:1532:1: packageElement : ( classOrInterfaceDecl | propertyDeclaration | functionDeclaration | interfaceFunctionDeclaration | statement | directive );
    public AS3_exParser.packageElement_return packageElement() // throws RecognitionException [1]
    {   
        AS3_exParser.packageElement_return retval = new AS3_exParser.packageElement_return();
        retval.Start = input.LT(1);
        int packageElement_StartIndex = input.Index();
        object root_0 = null;

        AS3_exParser.classOrInterfaceDecl_return classOrInterfaceDecl55 = null;

        AS3_exParser.propertyDeclaration_return propertyDeclaration56 = null;

        AS3_exParser.functionDeclaration_return functionDeclaration57 = null;

        AS3_exParser.interfaceFunctionDeclaration_return interfaceFunctionDeclaration58 = null;

        AS3_exParser.statement_return statement59 = null;

        AS3_exParser.directive_return directive60 = null;



        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 32) ) 
    	    {
    	    	return retval; 
    	    }
            // AS3_ex.g3:1533:5: ( classOrInterfaceDecl | propertyDeclaration | functionDeclaration | interfaceFunctionDeclaration | statement | directive )
            int alt36 = 6;
            alt36 = dfa36.Predict(input);
            switch (alt36) 
            {
                case 1 :
                    // AS3_ex.g3:1533:9: classOrInterfaceDecl
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_classOrInterfaceDecl_in_packageElement6109);
                    	classOrInterfaceDecl55 = classOrInterfaceDecl();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, classOrInterfaceDecl55.Tree);

                    }
                    break;
                case 2 :
                    // AS3_ex.g3:1533:32: propertyDeclaration
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_propertyDeclaration_in_packageElement6113);
                    	propertyDeclaration56 = propertyDeclaration();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, propertyDeclaration56.Tree);

                    }
                    break;
                case 3 :
                    // AS3_ex.g3:1533:54: functionDeclaration
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_functionDeclaration_in_packageElement6117);
                    	functionDeclaration57 = functionDeclaration();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, functionDeclaration57.Tree);

                    }
                    break;
                case 4 :
                    // AS3_ex.g3:1533:76: interfaceFunctionDeclaration
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_interfaceFunctionDeclaration_in_packageElement6121);
                    	interfaceFunctionDeclaration58 = interfaceFunctionDeclaration();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, interfaceFunctionDeclaration58.Tree);

                    }
                    break;
                case 5 :
                    // AS3_ex.g3:1533:107: statement
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_statement_in_packageElement6125);
                    	statement59 = statement();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, statement59.Tree);

                    }
                    break;
                case 6 :
                    // AS3_ex.g3:1533:119: directive
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_directive_in_packageElement6129);
                    	directive60 = directive();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, directive60.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, 32, packageElement_StartIndex); 
            }
        }
        return retval;
    }
示例#2
0
    // $ANTLR start "packageElement"
    // AS3_ex.g3:1864:1: packageElement : ( conditionalCompilerOption l= LCURLY ( packageElement )* r= RCURLY | classOrInterfaceDecl | propertyDeclaration | functionDeclaration | interfaceFunctionDeclaration | statement | directive );
    public AS3_exParser.packageElement_return packageElement() // throws RecognitionException [1]
    {   
        AS3_exParser.packageElement_return retval = new AS3_exParser.packageElement_return();
        retval.Start = input.LT(1);
        int packageElement_StartIndex = input.Index();
        object root_0 = null;

        IToken l = null;
        IToken r = null;
        AS3_exParser.conditionalCompilerOption_return conditionalCompilerOption57 = null;

        AS3_exParser.packageElement_return packageElement58 = null;

        AS3_exParser.classOrInterfaceDecl_return classOrInterfaceDecl59 = null;

        AS3_exParser.propertyDeclaration_return propertyDeclaration60 = null;

        AS3_exParser.functionDeclaration_return functionDeclaration61 = null;

        AS3_exParser.interfaceFunctionDeclaration_return interfaceFunctionDeclaration62 = null;

        AS3_exParser.statement_return statement63 = null;

        AS3_exParser.directive_return directive64 = null;


        object l_tree=null;
        object r_tree=null;

        try 
        {
            if ( (state.backtracking > 0) && AlreadyParsedRule(input, 32) ) 
            {
                return retval; 
            }
            // AS3_ex.g3:1865:5: ( conditionalCompilerOption l= LCURLY ( packageElement )* r= RCURLY | classOrInterfaceDecl | propertyDeclaration | functionDeclaration | interfaceFunctionDeclaration | statement | directive )
            int alt37 = 7;
            alt37 = dfa37.Predict(input);
            switch (alt37) 
            {
                case 1 :
                    // AS3_ex.g3:1866:6: conditionalCompilerOption l= LCURLY ( packageElement )* r= RCURLY
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        if ( state.backtracking == 0 ) 
                        {
                          insertCR(false);
                        }
                        PushFollow(FOLLOW_conditionalCompilerOption_in_packageElement6181);
                        conditionalCompilerOption57 = conditionalCompilerOption();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalCompilerOption57.Tree);
                        l=(IToken)Match(input,LCURLY,FOLLOW_LCURLY_in_packageElement6189); 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 ) 
                        {
                           
                                        mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_Conditional_code);
                                        leftCurlyNewlineHandler(false);
                                        emit(l);pushIndent(true);
                                        {mPrinter.addDeclEqualsBlock();}
                                        mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_block_code);
                                    
                        }
                        // AS3_ex.g3:1875:4: ( packageElement )*
                        do 
                        {
                            int alt36 = 2;
                            int LA36_0 = input.LA(1);

                            if ( ((LA36_0 >= AS && LA36_0 <= LCURLY) || LA36_0 == LPAREN || LA36_0 == LBRACK || LA36_0 == LT || (LA36_0 >= PLUS && LA36_0 <= STAR) || (LA36_0 >= INC && LA36_0 <= DEC) || (LA36_0 >= NOT && LA36_0 <= INV) || (LA36_0 >= XML_AT && LA36_0 <= XML_LS_STD) || (LA36_0 >= SINGLE_QUOTE_LITERAL && LA36_0 <= DOUBLE_QUOTE_LITERAL) || LA36_0 == REGULAR_EXPR_LITERAL || LA36_0 == HEX_NUMBER_LITERAL || LA36_0 == DEC_NUMBER_LITERAL || LA36_0 == IDENTIFIER || (LA36_0 >= XML_COMMENT && LA36_0 <= XML_PI)) )
                            {
                                alt36 = 1;
                            }


                            switch (alt36) 
                            {
                                case 1 :
                                    // AS3_ex.g3:0:0: packageElement
                                    {
                                        PushFollow(FOLLOW_packageElement_in_packageElement6199);
                                        packageElement58 = packageElement();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, packageElement58.Tree);

                                    }
                                    break;

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

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

                        if ( state.backtracking == 0 ) 
                        {
                          mPrinter.popDeclEqualsBlock();
                        }
                        if ( state.backtracking == 0 ) 
                        {
                          popIndent();
                        }
                        r=(IToken)Match(input,RCURLY,FOLLOW_RCURLY_in_packageElement6214); 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 ) 
                        {
                          insertCR(false);emit(r);popBlockStack();popBlockStack();
                        }

                    }
                    break;
                case 2 :
                    // AS3_ex.g3:1878:8: classOrInterfaceDecl
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_classOrInterfaceDecl_in_packageElement6229);
                        classOrInterfaceDecl59 = classOrInterfaceDecl();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, classOrInterfaceDecl59.Tree);

                    }
                    break;
                case 3 :
                    // AS3_ex.g3:1878:31: propertyDeclaration
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_propertyDeclaration_in_packageElement6233);
                        propertyDeclaration60 = propertyDeclaration();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, propertyDeclaration60.Tree);

                    }
                    break;
                case 4 :
                    // AS3_ex.g3:1878:53: functionDeclaration
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_functionDeclaration_in_packageElement6237);
                        functionDeclaration61 = functionDeclaration();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, functionDeclaration61.Tree);

                    }
                    break;
                case 5 :
                    // AS3_ex.g3:1878:75: interfaceFunctionDeclaration
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_interfaceFunctionDeclaration_in_packageElement6241);
                        interfaceFunctionDeclaration62 = interfaceFunctionDeclaration();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, interfaceFunctionDeclaration62.Tree);

                    }
                    break;
                case 6 :
                    // AS3_ex.g3:1878:106: statement
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_statement_in_packageElement6245);
                        statement63 = statement();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, statement63.Tree);

                    }
                    break;
                case 7 :
                    // AS3_ex.g3:1878:118: directive
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_directive_in_packageElement6249);
                        directive64 = directive();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, directive64.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, 32, packageElement_StartIndex); 
            }
        }
        return retval;
    }